sql - datediff 奇怪的东西 - SQL Server
问题描述
测试:
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 周?!其他人怎么回报他们回报的?
解决方案
Datediff 计算跨越边界的频率。
SELECT DATEPART(WEEK, '20190104 23:01:11.821')
, DATEPART(WEEK, '20190106 23:01:11.821')
退货
1 2
所以越过了一周的边界,所以 datediff 返回 1。
推荐阅读
- websocket - 通过 websocket 检索信息
- rabbitmq - 如何使队列处理消息的速度比接收消息的速度快
- r - 如何旋转纬度和经度数据并分配一个值以区分 R 中的目的地的起源?
- javascript - 我们如何从“on-event”属性调用 Chrome 内容脚本中的函数
- c# - ObjectDataSource 调用 WCF 服务抛出无法访问 dispose 对象
- javascript - 用于激活节点的 Fancytree JSON 参数
- r - 在R中的地图饼图中为不同的字符串指定不同的颜色
- javascript - tab按键忽略隐藏区域a&按钮元素
- reactjs - 如何更改挂钩中的特定变量值
- c# - 围绕圆圈旋转 UserControl