SQL Server 中是否有一个设置可以让它接受查询中的“yyyy-mm-dd”样式的日期。
在我们的大多数 SQL 服务器上运行良好的查询,但运行 Microsoft SQL Server 2005 Developer 的一台机器却不喜欢它们。这是错误:
将 char 数据类型转换为 datetime 数据类型导致日期时间值超出范围。
YYYYMMDD 工作正常
答案1
'yyyy-mm-dd' 格式与语言有关,您可以使用 SET LANGUAGE 指定它将使用的语言,在您的服务器中检查以下查询以了解其工作原理,第四行将抛出错误“将 char 数据类型转换为 datetime 数据类型导致超出范围的 datetime 值”
SET LANGUAGE 'English'
PRINT CONVERT(DATETIME,'2009-12-24')
SET LANGUAGE 'Spanish'
PRINT CONVERT(DATETIME,'2009-12-24')