Il CONVERT()
la funzione consente di convertire tra tipi di dati. È simile a CAST()
funzione, ma uno dei vantaggi di CONVERT()
è che, quando si converte da un tipo di dati data/ora a una stringa, è possibile aggiungere un argomento facoltativo che specifica lo stile in cui si desidera inserire il valore restituito. Ad esempio, è possibile restituirlo come dd .mm.aaaa , aaaa-mm-gg , gg lun aaaa , ecc
Questo articolo contiene esempi dei vari stili che puoi restituire durante la conversione di un valore di data/ora in una stringa utilizzando CONVERT()
funzione in SQL Server.
Esempio di base
Lo stile predefinito durante la conversione da datetime e smalldatetime i tipi di dati sono 0
e 100
(questi rappresentano lo stesso stile). Pertanto, quando non fornisci uno stile (terzo parametro), questo è lo stile:
DICLARE @date datetime =GETDATE();SELECT @date AS Originale, CONVERT(varchar, @date) AS Convertito;
Risultato:
+-------------------------+--------------------- -+| Originale | Convertito ||------------+---------------------- || 2018-06-07 03:08:21.997 | 7 giugno 2018 03:08 |+----------------------------------------+---------------- -----+
Tuttavia, otterrai un risultato diverso se il tipo di dati originale non è datetime o smalldatetime .
Se hai bisogno che venga restituito in uno stile diverso, dovrai specificare un terzo argomento.
Stili con anni a due cifre
Di seguito sono riportati esempi dei vari valori che puoi utilizzare per specificare lo stile utilizzando un componente anno a due cifre.
Stili da 1 a 6
DECLARE @date datetime2 ='2018-06-07';SELECT CONVERT(nvarchar(30), @date, 1) AS '1', CONVERT(nvarchar(30), @date, 2) AS '2' , CONVERT(nvarchar(30), @date, 3) AS '3', CONVERT(nvarchar(30), @date, 4) AS '4', CONVERT(nvarchar(30), @date, 5) AS '5 ', CONVERT(nvarchar(30), @date, 6) AS '6';
Risultato:
+----------+----------+-----------+----------+-- --------+------------+| 1 | 2 | 3 | 4 | 5 | 6 ||----------+----------+-----------+----------+--- -------+-----------|| 06/07/18 | 18.06.07 | 07/06/18 | 07.06.18 | 07-06-18 | 07 giu 18 |+----------+----------+----------+----------+- ---------+-----------+
Stili da 7 a 6
DECLARE @date datetime2 ='2018-06-07';SELECT CONVERT(nvarchar(30), @date, 7) AS '7', CONVERT(nvarchar(30), @date, 8) AS '8' , CONVERT(nvarchar(30), @date, 10) AS '10', CONVERT(nvarchar(30), @date, 11) AS '11', CONVERT(nvarchar(30), @date, 12) AS '12 ', CONVERT(nvarchar(30), @date, 14) AS '14';
Risultato:
+------------+----------+-----------+----------+ --------+-------------------+| 7 | 8 | 10 | 11 | 12 | 14 ||------------+----------+-----------+----------+- -------+------------------|| giu 07, 18 | 00:00:00 | 07-06-18 | 18/06/07 | 180607 | 00:00:00.0000000 |+------------+----------+-----------+-------- --+--------+----+
Stili con anni a quattro cifre
Di seguito sono riportati esempi dei vari valori che puoi utilizzare per specificare lo stile utilizzando un componente anno a quattro cifre.
Stili da 100 a 103
DICHIARA @date datetime2 ='2018-06-07 02:35:52.8537677';SELECT CONVERT(nvarchar(30), @date, 100) AS '100', CONVERT(nvarchar(30), @date, 101 ) AS '101', CONVERT(nvarchar(30), @date, 102) AS '102', CONVERT(nvarchar(30), @date, 103) AS '103';
Risultato:
+---------------------+------------+----------- -+------------+| 100 | 101 | 102 | 103 ||--------+------------+------------- +------------|| 7 giugno 2018 2:35 | 06/07/2018 | 2018.06.07 | 07/06/2018 |+----------------------+------------+-------- ----+------------+
Stili da 104 a 108
DICHIARA @date datetime2 ='2018-06-07 02:35:52.8537677';SELECT CONVERT(nvarchar(30), @date, 104) AS '104', CONVERT(nvarchar(30), @date, 105 ) AS '105', CONVERT(nvarchar(30), @date, 106) AS '106', CONVERT(nvarchar(30), @date, 107) AS '107', CONVERT(nvarchar(30), @date, 108) COME '108';
Risultato:
+------------+------------+-------------+------ --------+----------+| 104 | 105 | 106 | 107 | 108 ||------------+------------+-------------+------- -------+----------|| 07.06.2018 | 07-06-2018 | 07 giugno 2018 | 07 giugno 2018 | 02:35:52 |+------------+------------+-------------+--- -----------+----------+
Stili da 109 a 112
DICHIARA @date datetime2 ='2018-06-07 02:35:52.8537677';SELECT CONVERT(nvarchar(30), @date, 109) AS '109', CONVERT(nvarchar(30), @date, 110 ) AS '110', CONVERT(nvarchar(30), @date, 111) AS '111', CONVERT(nvarchar(30), @date, 112) AS '112';
Risultato:
+--------------------------------+------------+ ------------+----------+| 109 | 110 | 111 | 112 ||--------------------------------+------------+- -----------+----------|| 7 giugno 2018 2:35:52.8537677AM | 06-07-2018 | 07/06/2018 | 20180607 |+--------------------------------+------------+- -----------+----------+
Stili da 113 a 114
DICHIARA @date datetime2 ='2018-06-07 02:35:52.8537677';SELECT CONVERT(nvarchar(30), @date, 113) AS '113', CONVERT(nvarchar(30), @date, 114 ) COME '114';
Risultato:
+-----------------+---------------- ---+| 113 | 114 ||-----------------+---------------- --|| 07 giu 2018 02:35:52.8537677 | 02:35:52.8537677 |+------------------------------+------------ ------+
Stili da 120 a 127
DECLARE @date datetime2 ='2018-06-07';SELECT CONVERT(nvarchar(30), @date, 120) AS '120', CONVERT(nvarchar(30), @date, 126) AS '126' , CONVERT(nvarchar(30), @date, 127) AS '127';
Risultato:
+---------------------+----------------------+-- -------------------+| 120 | 126 | 127 ||----------------------+----------------------+--- ------------------|| 2018-06-07 00:00:00 | 2018-06-07T00:00:00 | 2018-06-07T00:00:00 |+---------------------+----------------- ----+----------------------+
Stile 130
DICHIARA @date datetime2 ='2018-06-07';SELECT CONVERT(nvarchar(30), @date, 130) AS '130';
Risultato:
+--------------------------------+| 130 ||--------------------------------|| 24 رمضان 1439 12:00:00.0000000 |+--------------------------------+
Microsoft avverte che questo valore non viene visualizzato correttamente su un'installazione predefinita di SSMS negli Stati Uniti.
Stile 131
DICHIARA @date datetime2 ='2018-06-07';SELECT CONVERT(nvarchar(30), @date, 131) AS '131';
Risultato:
+-------------------------------+| 131 ||-----------------||| 24/09/1439 12:00:00.0000000AM |+-------------------------------+
Puoi leggere ulteriori informazioni sugli stili di data/ora disponibili sul sito Web Microsoft.