Sql server 是否将nvarchar强制转换为datetime,而不考虑登录日期格式?
我有两台服务器,使用两种不同的登录日期格式(Sql server 是否将nvarchar强制转换为datetime,而不考虑登录日期格式?,sql-server,sql-server-2008,datetime,casting,nvarchar,Sql Server,Sql Server 2008,Datetime,Casting,Nvarchar,我有两台服务器,使用两种不同的登录日期格式(English&English) 我需要能够CAST将nvarchar值转换为datetime,而不考虑日期格式 我有以下疑问: select cast('2011-13-07' as datetime) 这在一台服务器上有效,但在另一台服务器上无效 是否有其他方法可以将两台服务器的13/7/2011表示为datetime对象 为保持一致性,两台服务器上的查询必须相同。使用ISO-8601标准格式YYYYMMDD: SELECT CAST('2011
English
&English
)
我需要能够CAST
将nvarchar值转换为datetime,而不考虑日期格式
我有以下疑问:
select cast('2011-13-07' as datetime)
这在一台服务器上有效,但在另一台服务器上无效
是否有其他方法可以将两台服务器的13/7/2011
表示为datetime
对象
为保持一致性,两台服务器上的查询必须相同。使用ISO-8601标准格式
YYYYMMDD
:
SELECT CAST('20110713' as DATETIME)
不要用破折号!该格式将适用于任何SQL Server实例,而不考虑语言、区域和语言环境设置-它只适用于
ISO-8601中的另一种格式是
YYYY-MM-DDTHH:MM:SS
-这一种格式包括破折号,但也包括时间部分。我得到错误将varchar数据类型转换为datetime数据类型导致值超出范围。
@Curt:是的-抱歉-起初我把日期和月份混淆了。您需要年、月、日(20110713
)