Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak przekonwertować wartość daty/godziny na ciąg w SQL Server za pomocą funkcji CONVERT()

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 xmldużysql_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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz domyślny profil publiczny dla poczty bazy danych w programie SQL Server (T-SQL)

  2. Różnica między lewym i prawym złączeniem w SQL Server

  3. Jak przekonwertować wielkie litery na małe w programie SQL Server — LOWER()

  4. @@ROWCOUNT — Uzyskaj liczbę wierszy, których dotyczy ostatnia instrukcja w SQL Server

  5. SQL Server:Dołącz niepoprawną wersję 661