如何在SQL Server中检查日期字符串是否为MM/DD/YYYY格式?
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日。最好的选择是让用户从下拉菜单或日历控件中选择日期,这样可以控制格式并避免任何不必要的解释。您的应用程序层可以使用强类型变量/参数,并插入到正确类型的列中。
如果您想查看SQL Server的日期格式是否为MDY,请使用以下方法:
dbcc useroptions
请查看日期格式设置选项
使用CONVERT函数,您可以将日期转换为格式为MM/DD/YYYY的日期字符串。
select convert(varchar(10),getdate(),101)
09/08/2012
除了检查日期字段是否为空之外,没有必要进行验证。
你必须在数据库外部进行操作。数据库会以自己的格式内部存储日期时间。我认为你无法读取日期存储的格式。你可以按照任何方式读取它,例如dd/mm/yyyy或yyyy/mm/dd等。
你可以在数据库外部检查任何日期字段的值。你可以使用正则表达式来实现。但这将是在数据库外部进行的。