Quando si utilizza SQL Server, è possibile convertire un valore di data/ora in una stringa utilizzando CONVERT() funzione. Questa funzione consente di convertire tra diversi tipi di dati.
In questo articolo, convertiremo tra vari tipi di dati di data/ora in un varchar o nvarchar stringa.
Uno degli aspetti positivi di questa funzione è che ti consente di specificare lo stile in cui verrà restituita la data. Ad esempio, puoi specificare se viene restituita come mm/gg/aaaa , aaaa.mm.gg , lun gg, aaaa , ecc. Puoi anche specificare se il componente temporale viene restituito e come viene applicato lo stile.
Sintassi
Innanzitutto, ecco come funziona la sintassi ufficiale:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Questi argomenti sono definiti come segue:
expression- Qualsiasi espressione valida.
data_type- Il tipo di dati di destinazione. Ciò include xml , grande e sql_variant . Non è possibile utilizzare tipi di dati alias.
length- Un numero intero facoltativo che specifica la lunghezza del tipo di dati di destinazione. Il valore predefinito è
30. style- Un'espressione intera che specifica come
CONVERT()la funzione tradurrà espressione . Per un valore di stile di NULL, viene restituito NULL. tipo_dati determina l'intervallo.
Esempio di base
In questo esempio, dichiariamo una variabile e assegniamo un valore da GETDATE() funzione. Quindi restituiamo il valore e convertiamo anche quel valore in varchar e restituiscilo:
DECLARE @date datetime = GETDATE();
SELECT
@date AS Original,
CONVERT(varchar, @date) AS Converted; Risultato:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
La lunghezza predefinita del tipo di dati di ritorno è 30 , quindi anche se abbiamo specificato solo varchar , restituirà il risultato come varchar(30) .
In questo esempio, non abbiamo fornito un terzo argomento per indicare lo stile in cui vogliamo che venga restituito. Pertanto, è stato convertito utilizzando lo stile predefinito per datetime e smalldatetime tipi di dati, che è 0 o 100 (maggiori informazioni sugli stili di seguito).
Specifica di uno stile
Puoi utilizzare un terzo argomento per specificare lo stile che assumerà il valore restituito:
DECLARE @date datetime = GETDATE();
SELECT
@date AS Original,
CONVERT(varchar(30), @date, 102) AS Converted; Risultato:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:42:33.840 | 2018.06.07 | +-------------------------+-------------+
In questo esempio, abbiamo specificato uno stile di 102 , che è lo standard ANSI per la visualizzazione di una data con una componente anno a quattro cifre.
Per cambiarlo in un formato ANSI con un anno a due cifre, possiamo usare uno stile di 2 :
DECLARE @date datetime = GETDATE();
SELECT
@date AS Original,
CONVERT(varchar(30), @date, 2) AS Converted; Risultato:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:44:52.433 | 18.06.07 | +-------------------------+-------------+
Puoi vedere altri esempi su CONVERT() da Date/Time a String Examples in SQL Server.