Sql server 计算特定日期范围内的日期差异

Sql server 计算特定日期范围内的日期差异,sql-server,date,casting,range,Sql Server,Date,Casting,Range,我试图计算两个日期之间的天数,而不是只计算两个日期内的天数 基本上,如果在财政年度“2012-11-01 00:00”和“2013-10-31 23:59”中出现记录,我想知道从B.出发到该年度结束之间有多少个夜晚,即“2013-10-31 23:59” 我得到的错误是: 将varchar值“NULL”转换为数据时,转换失败 输入int 这就是我要做的: CASE WHEN B.Depart BETWEEN '2012-11-01 00:00' AND '2013-10-31 23:59'

我试图计算两个日期之间的天数,而不是只计算两个日期内的天数

基本上,如果在财政年度“2012-11-01 00:00”和“2013-10-31 23:59”中出现记录,我想知道从B.出发到该年度结束之间有多少个夜晚,即“2013-10-31 23:59”

我得到的错误是:

将varchar值“NULL”转换为数据时,转换失败 输入int

这就是我要做的:

 CASE 
 WHEN B.Depart BETWEEN '2012-11-01 00:00' AND '2013-10-31 23:59' THEN datediff (minute, B.Depart, '2013-10-31 23:59')
 ELSE 'NULL' 
 END AS '2012/13 nights'
非常感谢您的帮助

 CASE 
 WHEN B.Depart BETWEEN '2012-11-01 00:00' AND '2013-10-31 23:59' THEN datediff (minute, B.Depart, '2013-10-31 23:59')
 ELSE NULL
 END AS '2012/13 nights'
不要将“NULL”视为varchar,而是选择NULL。

因此您的查询是:

 CASE 
 WHEN B.Depart BETWEEN '2012-11-01 00:00' AND '2013-10-31 23:59' THEN datediff (day, B.Depart, '2013-10-31 23:59')
 ELSE NULL 
 END AS '2012/13 nights'

将“Null”更改为Null?Doh!Thnaks,也可以将“分钟”改为“天”,以获得我的天数