我有包含日期范围的表格,如下所示:
DATE DATE2
14.03.2013 17.03.2013
13.04.2013 02.05.2013
我必须创建一个过程,返回等于两个日期范围的天数,一个在表中,另一个在表中。
例如,我在表中的日期范围是这样的 14.03.2013 - 17.03.2013 和另一个日期范围,它是在这样的过程中声明的 02.03.2013 - 16.03.2013,所以在这种情况下,天计数将为 3,因为,两者日期范围的日期介于 14.03.2013 和 16.03.2013 之间。
假设您的表称为 daterange 并且您在过程中定义了参数 @param1 和 param2 那么这些行上的内容应该可以工作:
set @param1 := cast('2013-03-14' as date);
set @param2 := cast('2013-03-16' as date);
select
datediff(least(date2,@param2),@param1)+1
from daterange where @param1 between date1 and date2
请参阅示例sqlfiddle http://sqlfiddle.com/#!2/212ef7/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)