Ho un database in SQL Server. Non ho l'autorizzazione per cambiare tabella ma posso creare visualizzazioni.Come convertire varchar in datetime e saltare datetime non valido in TSQL
Ho tre colonne varchar
che memorizzano le date nel formato YYYYMMDD
. Voglio creare una vista in cui le date vengono convertite da varchar
a datetime
.
Ora può accadere che al posto di una data in queste colonne possa avere spazio vuoto, NULL
o il carattere -
.
Prendiamo la colonna closedDate
. Se uso CONVERT(datetime, closedDate, 112)
date valide vengono convertiti correttamente,
Quando v'è spazio vuoto la data viene convertita in
1900-01-01
,NULL viene mantenuto,
Il
-
causa un errore di conversione:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Come posso dire alla funzione di convertire le date solo se ha un modulo di data valido e lasciare NULL o meglio una data vuota (o spazio) in tutti gli altri casi?
Perfetto, grazie! E se invece di NULL voglio ottenere la data/lo spazio vuoto? – CiccioMiami
Non è possibile avere uno spazio vuoto in un campo datetime. – HLGEM
Grazie funziona come un fascino! –