select
DateDiff(Day, convert(datetime,'2/1/'+cast(Year(BeginDate) as varchar)),
convert(datetime,'2/29/'+cast(Year(BeginDate) as varchar)))
from [table]
where (begindate is not null and enddate is not null)
我遇到了错误
生成了char数据类型到datetime数据类型的转换 在超出范围的日期时间值。
Begindate示例:2014-02-12 00:00:00.000 enddate的例子:2014-02-16 00:00:00.000
请指点我指向正确的方向,谢谢。
答案 0 :(得分:-1)
此错误是由于不同语言在SQL Server中表示和解析日期的方式。如果将英语设置为默认语言,则SQL Server需要MM / DD / YYYYformat中的日期。其他语言可能需要DD / MM / YYYY格式。如果提供的内容与SQL Server期望的内容不匹配,SQL Server将抛出此错误。