Korzystając z SQL Server, możesz przekonwertować wartość daty/godziny na ciąg znaków za pomocą CONVERT()
funkcjonować. Ta funkcja umożliwia konwersję między różnymi typami danych.
W tym artykule będziemy konwertować między różnymi typami danych daty/godziny na varchar
lub nvarchar
ciąg.
Jedną z zalet tej funkcji jest to, że pozwala ona określić styl, w jakim data zostanie zwrócona. Na przykład możesz określić, czy jest ona zwracana jako mm/dd/rrrr , rrrr.mm.dd , Pon dd, rrrr itp. Możesz także określić, czy zwracany jest składnik czasu i jaki jest jego styl.
Składnia
Po pierwsze, oto jak wygląda oficjalna składnia:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Te argumenty są zdefiniowane w następujący sposób:
expression
- Dowolne prawidłowe wyrażenie.
data_type
- Docelowy typ danych. Obejmuje to xml , duży i sql_variant . Nie można używać typów danych aliasów.
length
- Opcjonalna liczba całkowita, która określa długość docelowego typu danych. Domyślna wartość to
30
. style
- Wyrażenie całkowite, które określa, w jaki sposób
CONVERT()
funkcja przetłumaczy wyrażenie . Dla wartości stylu NULL zwracana jest wartość NULL. typ_danych określa zakres.
Przykład podstawowy
W tym przykładzie deklarujemy zmienną i przypisujemy wartość z GETDATE()
funkcjonować. Następnie zwracamy wartość, a także konwertujemy ją na varchar
i zwróć to:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar, @date) AS Converted;
Wynik:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
Domyślna długość zwracanego typu danych to 30
, więc mimo że określiliśmy tylko varchar
, zwróci wynik jako varchar(30)
.
W tym przykładzie nie podaliśmy trzeciego argumentu wskazującego styl, w jakim chcemy go zwrócić. Dlatego został on przekonwertowany przy użyciu domyślnego stylu data-godzina i smalldatetime typy danych, czyli 0
lub 100
(więcej o stylach poniżej).
Określanie stylu
Możesz użyć trzeciego argumentu, aby określić styl, jaki przyjmie wartość zwracana:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 102) AS Converted;
Wynik:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:42:33.840 | 2018.06.07 | +-------------------------+-------------+
W tym przykładzie określiliśmy styl 102
, który jest standardem ANSI do wyświetlania daty z czterocyfrowym składnikiem roku.
Aby zmienić to na format ANSI z dwucyfrowym rokiem, możemy użyć stylu 2
:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 2) AS Converted;
Wynik:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:44:52.433 | 18.06.07 | +-------------------------+-------------+
Możesz zobaczyć więcej przykładów na CONVERT() od daty/godziny do przykładów ciągów w SQL Server.