SQL Server的日期时间解释有误日/月

问题描述:

我有一个查询这就是说,SQL Server的日期时间解释有误日/月

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

但是SQL服务器格式为YYYY-MM-DD解释这个(我认为YYYY-MM- DD格式被使用,因为它不应该是明确的,但不知道这是不是这种情况!)

这将是很好的知道为什么会发生这种情况(我还没有prereinced之前与SQL Server,以及什么最佳做法是在处理日期时

有三种格式:a重新(并且已经很长一段时间)毫不含糊。它们是:

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. 如何这个日期被传递给SQL服务器(它可以取决于客户端上的日期 设置 - 即Windows设置)。我看到一个代码(在VB6中) ,其中2014年10月8日通过日期为2014年10月8日或8月10日 2014取决于服务器设置(波兰语,英国语,美国语)。

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