Continuiamo la carrellata dei nuovi costrutti disponibili sulla versione 2012 di SQL Server.Oggi parliamo delle funzioni di conversione, e in particolare di:
PARSE
permette di effettuare il parsing di una stringa per poi castarla all'interno di uno specifico datatype, con la possibilità di passare anche una culture.
Questa funzione deve essere usata per convertire una stringa che contiene Date/Time e Numerici. Per gli altri tipi, anche come indica la documentazione, continuare ad usare CAST o CONVERT.
Inoltre, bisogna tenere a mente che il parsing prima del cast nel tipo di dato appesantisce l'operazione (consderare anche questo se si ha a che fare con operazioni su molte righe).
Semplice esempio:
SELECT ParsedColumn = PARSE('30/03/2012' AS
datetime)
TRY_PARSE
Molto simile alla precedente, ma il prefisso TRY_ fa capire che la gestione dell'errore è demandata interamente alla funzione. Nel caso in cui il cast fallisca, viene tornato NULL.
Esempio:
IF TRY_PARSE('Stringa' AS datetime USING
'en-US') IS NULL
PRINT 'Errore'
ELSE
PRINT 'ok'
TRY_CONVERT
Questa funzione, ragiona con il metodo della precedente, prova a convertire in un particolare tipo un'espressione, tornando null se la conversione non può essere effettuata o il valore convertito se è tutto ok.
Inoltre ha un parametro style che consente, come per la CONVERT, di definire con che stile formattare il risultato.
Esempio:
SELECT
Result = CASE WHEN
TRY_CONVERT(int, 'Strings') IS NULL
THEN 'Nessuna conversione'
ELSE 'Conversione ok'
END;
Stay tuned!