SQL Server日期格式为MM/DD/YYYY。

6
如何在SQL Server中检查日期字符串是否为MM/DD/YYYY格式?
4个回答

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日。最好的选择是让用户从下拉菜单或日历控件中选择日期,这样可以控制格式并避免任何不必要的解释。您的应用程序层可以使用强类型变量/参数,并插入到正确类型的列中。


2
+1 - 需要注意的是,这当然暗示着日期/时间绝对不应该被存储为字符串类型,而应该使用它们正确的类型。如果你试图弄清楚数据库正在使用什么...你可能会遇到一些麻烦。 - Clockwork-Muse

4

如果您想查看SQL Server的日期格式是否为MDY,请使用以下方法:

dbcc useroptions

请查看日期格式设置选项


3

使用CONVERT函数,您可以将日期转换为格式为MM/DD/YYYY的日期字符串。

select convert(varchar(10),getdate(),101)

输出结果将为2012年9月8日。
09/08/2012

除了检查日期字段是否为空之外,没有必要进行验证。


0

你必须在数据库外部进行操作。数据库会以自己的格式内部存储日期时间。我认为你无法读取日期存储的格式。你可以按照任何方式读取它,例如dd/mm/yyyy或yyyy/mm/dd等。

你可以在数据库外部检查任何日期字段的值。你可以使用正则表达式来实现。但这将是在数据库外部进行的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接