我收到某种格式的数据。日期为数字 (8,0)。例如20120101 = YYYYMMDD
该日期字段中存在具有诸如 (0,1,2,3,6)
之类的值的行,因此不是日期。
我想检查它是否是日期并将其转换,否则它可能为空。
现在以下代码可以工作,但我希望有更好的方法。
(CASE WHEN [invoice_date] LIKE '________' --There are 8 underscores
THEN convert(datetime, cast([invoice_date] as char(8)))
END) AS Invoice_Date
任何帮助将不胜感激。
最佳答案
使用 isdate 函数 像..
(CASE WHEN ISDATE (invoice_date) = 1
THEN convert(datetime, cast([invoice_date] as char(8)))
END) AS Invoice_Date
关于sql - 检查值是否为日期并将其转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16353411/