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

Risoluzione dell'overflow di TRY_PARSE() con datetime in SQL Server 2012. Deve essere compreso tra 1/1/1753 00:00:00 AM e 31/12/9999 23:59:59 PM

Usa DateTime2 invece di DateTime

SELECT TRY_PARSE('01-Jan-0001' AS datetime2)

SELECT TRY_CONVERT(datetime2, '01-Jan-0001')

E un'altra cosa

Usa TRY_CONVERT invece di TRY_PARSE :

  • TRY_PARSE :restituisce il risultato dell'espressione, tradotto nel tipo di dati richiesto o null se il cast non riesce.

  • TRY_CONVERT :restituisce un cast del valore al tipo di dati specificato se il cast ha esito positivo; in caso contrario, restituisce null.

SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;