Когато използвате 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.