在SQL Server 2005中验证DateTime字符串 [英] Validate DateTime String in SQL Server 2005
问题描述
我需要一个SQL脚本验证SQL Server 2005数据库中包含DateTime值的表中的VARCHAR字段,格式为 DD / MM / YYYY
,或 NULL
值。我想确定所有无效的日期。任何人都可以提出一种方法?
I require a SQL script to validate a VARCHAR field in a table in a SQL Server 2005 database that contains DateTime values, in the format DD/MM/YYYY
, or NULL
values. I would like to identify all invalid dates. Can anyone suggest a method?
更新
- 答案必须使用T-SQL;出于性能原因,我无法使用SQLCLR。
感谢,MagicAndi
Thanks, MagicAndi
推荐答案
使用ISDATE()或IS NULL:但首先设置语言以识别日月年订单
Use "ISDATE()" OR "IS NULL": but set the language first to recognise the day-month-year order
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
As mentioned by @edosoft, you can use SET DATEFORMAT too. SET LANGUAGE implicitly sets DATEFORMAT, SET DATEFORMAT overrides SET LANGUAGE
这篇关于在SQL Server 2005中验证DateTime字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!