La funzione SQL PARSE è una funzione di conversione SQL usata per convertire i dati della stringa nel tipo di dati richiesto e restituisce il risultato come espressione. Si raccomanda di usare questa funzione SQL PARSE per convertire i dati della stringa nel tipo Data, o nel tipo Numero.
Sintassi della funzione SQL PARSE
La sintassi della funzione SQL Server PARSE è
PARSE (String_Value AS Data_Type )-- For exampleSELECT PARSE (String_Column_Value AS Data_Type USING 'en-US') AS FROM
- Data_Type: Tipo di dati in cui si vuole convertire il valore della stringa
- Cultura: Questo è un parametro opzionale. Per default, usa la lingua corrente della sessione.
SQL PARSE Function Example 1
La funzione Parse di SQL Server è usata principalmente per convertire la stringa in data e ora, e valori numerici. La seguente query della funzione Parse analizza interi o stringhe in decimali e stringhe in DateTime.
Se la funzione Parse non è in grado di convertire la stringa nel tipo di dati desiderato. O se passiamo la stringa non convertibile, o se passiamo il valore NULL, allora questa funzione Parse restituirà Errore.
-- SQL PARSE FUNCTION Example DECLARE @str AS VARCHAR(50)SET @str = '11122'SELECT PARSE(@str AS INT) AS Result; -- Direct InputsSELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result; SELECT PARSE('06/03/2017' AS DATETIME) AS Result; SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
Convertiamo il valore della stringa in un intero e usiamo la colonna ALIAS in SQL Server per chiamarla ‘Result’.
SELECT TRY_PARSE(@str AS INT) AS Result;
Nella prossima riga, abbiamo usato la funzione SQL PARSE direttamente sul valore della stringa e l’abbiamo convertita in un valore decimale con precisione 2
SELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result;
In seguito, stiamo convertendo la stringa in DateTime e datetime2 Data Type.
SELECT PARSE('06/03/2017' AS DATETIME) AS Result; SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
Esempio di funzione Parse 2
In questo esempio di funzione Parse, lavoreremo con valori NULL e stringhe non convertibili.
-- SQL PARSE FUNCTION Example DECLARE @strval AS VARCHAR(50)SET @strval = NULLSELECT PARSE(@strval AS INT) AS Result;
Facciamo vedere cosa succede se passiamo il valore NULL come input
SELECT PARSE(NULL AS INT) AS Result;
Abbiamo provato a convertire la stringa ‘Tutorial Gateway’ in data ora. Non è possibile, quindi questa funzione parse sta restituendo come output Error.
SELECT PARSE('Tutorial Gateway' AS DATETIME USING 'en-US') AS Result;