Когато използвате SQL Server, можете да конвертирате стойност за дата/час в низ, като използвате CONVERT() функция. Тази функция ви позволява да конвертирате между различни типове данни.
В тази статия ще конвертираме между различни типове данни за дата/час в varchar или nvarchar низ.
Едно от добрите неща за тази функция е, че ви позволява да посочите стила, в който датата ще бъде върната. Например можете да посочите дали да се връща като mm/dd/yyyy , гггг.мм.дд , пн дд, гггг , и т.н. Можете също да посочите дали компонентът за време се връща и как е стилизиран.
Синтаксис
Първо, ето как върви официалният синтаксис:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Тези аргументи се дефинират, както следва:
expression- Всякакъв валиден израз.
data_type- Целевият тип данни. Това включва xml , голям и sql_variant . Типовете данни за псевдоним не могат да се използват.
length- Незадължително цяло число, което определя дължината на целевия тип данни. Стойността по подразбиране е
30. style- Цялочислен израз, който указва как
CONVERT()функцията ще преведе израз . За стойност на стил NULL се връща NULL. тип_данни определя обхвата.
Основен пример
В този пример ние декларираме променлива и присвояваме стойност от GETDATE() функция. След това връщаме стойността и също така преобразуваме тази стойност в varchar и върнете това:
DECLARE @date datetime = GETDATE();
SELECT
@date AS Original,
CONVERT(varchar, @date) AS Converted; Резултат:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
Дължината по подразбиране на връщания тип данни е 30 , така че въпреки че посочихме само varchar , той ще върне резултата като varchar(30) .
В този пример не предоставихме трети аргумент, за да посочим стила, в който искаме да бъде върнат. Следователно той е преобразуван с помощта на стила по подразбиране за datetime и smalldatetime типове данни, което е 0 или 100 (повече за стиловете по-долу).
Указване на стил
Можете да използвате трети аргумент, за да посочите стила, който връщаната стойност ще приеме:
DECLARE @date datetime = GETDATE();
SELECT
@date AS Original,
CONVERT(varchar(30), @date, 102) AS Converted; Резултат:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:42:33.840 | 2018.06.07 | +-------------------------+-------------+
В този пример посочихме стил 102 , което е стандартът ANSI за показване на дата с четирицифрен компонент на годината.
За да променим това във формат ANSI с двуцифрена година, можем да използваме стил 2 :
DECLARE @date datetime = GETDATE();
SELECT
@date AS Original,
CONVERT(varchar(30), @date, 2) AS Converted; Резултат:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:44:52.433 | 18.06.07 | +-------------------------+-------------+
Можете да видите още примери за CONVERT() от дата/час до примери за низове в SQL Server.