一尘不染

验证SQL Server 2005中的DateTime字符串

sql

我需要一个SQL脚本来验证SQL Server
2005数据库中包含DateTime值(格式为DD/MM/YYYYNULL值)的表中的VARCHAR字段。我想找出所有无效的日期。有人可以建议一种方法吗?

更新

  • 答案必须是使用T-SQL。出于性能原因,我无法使用SQLCLR。

谢谢,MagicAndi


阅读 129

收藏
2021-05-16

共1个答案

一尘不染

使用“ ISDATE()”或“ IS NULL”:但首先设置语言以识别日-月-年顺序

SET LANGUAGE british
SELECT ISDATE('12/31/2009'), ISDATE('31/12/2009')

SET LANGUAGE us_english
SELECT ISDATE('12/31/2009'), ISDATE('31/12/2009')

编辑:如@edosoft所述,您也可以使用SET DATEFORMAT。SET LANGUAGE隐式设置DATEFORMAT,SET
DATEFORMAT覆盖SET LANGUAGE

2021-05-16