如何检查SQL Server中的日期字符串是否为MM / DD / YYYY格式?
答案 0 :(得分:17)
SET DATEFORMAT MDY;
SELECT CASE WHEN ISDATE(@string) = 1
AND @string LIKE '[0-1][0-9]/[0-3][0-9]/[1-2][0-9][0-9][0-9]'
THEN 1 ELSE 0 END;
如果结果为1,那么它是一个有效的日期,但不能保证它是用户的日期。如果他们进入:
06/07/2012
无法知道它们是指6月7日还是7月6日。最好的办法是让用户从下拉菜单或日历控件中选择日期,这样您就可以控制格式并避免任何不必要的解释。您的应用程序层可以使用强类型变量/参数并插入正确键入的列。
答案 1 :(得分:4)
如果您正在使用SQL Server dateformat查看它是否为MDY,请使用:
dbcc useroptions
并查看 dateformat 设置选项
答案 2 :(得分:2)
select convert(varchar(10),getdate(),101)
输出将截至2012年9月8日
09/08/2012
没有必要验证,除了检查日期字段是否为空
答案 3 :(得分:0)
您必须在数据库之外执行此操作。数据库以其自己的格式在内部存储日期时间。我不认为你可以阅读存储日期的格式。你可以按自己喜欢的方式阅读它,例如dd / mm / yyyy或yyyy / mm / dd等。
您可以做的是在数据库外检查任何日期字段的值。您可以使用正则表达式。但这将在数据库之外。