SQL Server日期格式MM / DD / YYYY

时间:2012-09-04 15:16:28

标签: sql sql-server tsql

如何检查SQL Server中的日期字符串是否为MM / DD / YYYY格式?

4 个答案:

答案 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)

使用CONVERT function

以此格式MM / DD / YYYY将日期转换为日期字符串
select convert(varchar(10),getdate(),101)

输出将截至2012年9月8日

09/08/2012

没有必要验证,除了检查日期字段是否为空

答案 3 :(得分:0)

您必须在数据库之外执行此操作。数据库以其自己的格式在内部存储日期时间。我不认为你可以阅读存储日期的格式。你可以按自己喜欢的方式阅读它,例如dd / mm / yyyy或yyyy / mm / dd等。

您可以做的是在数据库外检查任何日期字段的值。您可以使用正则表达式。但这将在数据库之外。