Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

CONVERT() da data/ora a esempi di stringhe in SQL Server

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 è datetimesmalldatetime .

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.