计算指定日期范围内日期之间的差异

时间:2013-08-28 14:18:28

标签: sql-server date casting range

我正在尝试计算行的两个日期之间的天数,而不是仅在两个日期内计算。

基本上,如果记录在2012-11-01 00:00'和'2013-10-31 23:59'的财政年度中,我想知道B.Depart和结束之间有多少个夜晚。那一年,即'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'

非常感谢!

2 个答案:

答案 0 :(得分:0)

 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。

答案 1 :(得分:0)

所以你的查询是:

 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'