测试:
select datediff(week, '20190104 23:01:11.821', '20190105 23:01:11.821')
select datediff(week, '20190104 23:01:11.821', '20190106 23:01:11.821')
select datediff(week, '20190104 23:01:11.821', '20190107 23:01:11.821')
select datediff(week, '20190104 23:01:11.821', '20190108 23:01:11.821')
select datediff(week, '20190104 23:01:11.821', '20190109 23:01:11.821')
select datediff(week, '20190104 23:01:11.821', '20190113 23:01:11.821')
这将返回
0
1
1
1
2
我只在第一个返回值中看到常识。 到底是怎么回事? 例如。最后一个为什么会返回2周? 其他人如何返回他们所返回的东西?
答案 0 :(得分:3)
Dateiff计算边框的穿越频率。
function BlackFridayPopup() {
if (isMobile) return;
if (!$('body').hasClass('homepage') && getCookie('page_count') != 3) return;
$(window).on('load', function () {
if (!getCookie('blackFridayPopup')){
setCookie('blackFridayPopup', '1', '7');
$('#myModel').modal('show');
} else {
return;
}
});
}
返回
SELECT DATEPART(WEEK, '20190104 23:01:11.821')
, DATEPART(WEEK, '20190106 23:01:11.821')
所以越过了一个星期的边界,所以datediff返回1。
答案 1 :(得分:3)
datediff()
函数返回两个日期之间的日期部分边界数。
因此,datediff(year, '2018-12-31', '2020-01-01')
将返回“ 2”,因为存在两年的边界。
每周边界发生在周六晚上/周日早晨。有两个星期六晚上,所以你有两个星期。
如果您希望更接近周数,请使用day
除以7。
答案 2 :(得分:-2)
您确定一周的第一天是什么吗?
您可以按照以下指示日期的方式进行查询,您会知道它在一周中的哪个位置。
SELECT DATEPART(WEEKDAY, GETDATE())
例如,根据您的日期,如果星期几是星期日,则“我会正确”。