Sql server datetime被解释为错误的日/月

时间:2014-10-08 09:15:10

标签: sql sql-server datetime

我的查询类似于

select * from myTable where [date] < 'YYYY-MM-DD'

然而,sql server正在以YYYY-DD-MM格式解释这个(我认为使用的是YYYY-MM-DD格式,因为它不应该是明确的,但不可理解的情况并非如此!)

知道为什么会发生这种情况会很好(我之前没有使用过SQL服务器,以及处理日期时的最佳做法。

2 个答案:

答案 0 :(得分:4)

有三种格式(并且已经很长时间)是明确的。这些是:

 YYYYMMDD
 YYYY-MM-DD'T'hh:mm:ss
 YYYY-MM-DD'T'hh:mm:ss.mil

其他一些格式可能在较新版本的SQL Server上和/或使用较新的datetime2datetime类型时是明确的,但是您可以始终依赖上面的3.所以只需要使用YYYYMMDD,或者,如果可能的话,当你想处理日期时,避免将字符串传递给SQL Server。

(或者,选项3,使用CONVERT并准确指定您实际使用的格式)

答案 1 :(得分:0)

我首先要检查两件事:

  1. 如何将此日期传递给SQL Server(可能取决于日期 客户端上的设置 - 即Windows设置)。我看到了一个代码(在VB6中) 通过日期,如2014-10-08&#39; 2014年10月8日或8月10日 2014年取决于服务器设置(波兰语,英国,美国)。

  2. SQL Server如何识别以字符串形式传递的日期 - 即2014-10-08(类似问题)。