SQL Server日期格式MM/DD/YYYY

Lal*_*ala 6 sql t-sql sql-server

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

Aar*_*and 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;
Run Code Online (Sandbox Code Playgroud)

如果结果为1,则它是有效日期,但不保证它是用户所指的日期.如果他们输入:

06/07/2012
Run Code Online (Sandbox Code Playgroud)

无法知道它们是指6月7日还是7月6日.最好的办法是让用户从下拉菜单或日历控件中选择日期,这样您就可以控制格式并避免任何不必要的解释.您的应用程序层可以使用强类型变量/参数并插入正确键入的列.

  • +1 - 应该注意的是,这当然暗示日期/时间应该**绝对不是**存储为字符串类型,而是作为它们的正确类型.如果你想弄清楚数据库正在使用什么......你可能会遇到麻烦. (2认同)