SQL Server ed ALM su database


Il blog di Alessandro Alpi
Archivio Posts
Anno 2018

Anno 2017

Anno 2016

Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

SQL Server 2012 - Transact-SQL - PARSE, TRY_PARSE e TRY_CONVERT

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).
Per avere la lista dei tipi di dato e delle culture utilizzabili, andare sul link della reference.
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! 

Categoria: SQL Server 2012
venerdì, 30 mar 2012 Ore. 17.20

Messaggi collegati


Statistiche
  • Views Home Page: 599.572
  • Views Posts: 1.065.651
  • Views Gallerie: 637.597
  • n° Posts: 484
  • n° Commenti: 273



















Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003