Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将SQL日期时间舍入到午夜

将SQL日期时间舍入到午夜

提问于 2018-03-20 20:30:50
回答 2关注 0查看 192

我的SQL查询有一个小问题。我正在使用GETDATE函数,但是,假设我在17:00执行脚本,它将在2011年12月12日17:00至2011年12月18日之间恢复记录。我怎样才能把整个12/12/2011-12/18/2011的记录都拉出来--基本上忽略时间。

代码语言:txt
AI代码解释
复制
WHERE Orders.OrderStatus = 'Shipped'  
AND Orders.ShipDate > (GETDATE()-6)  

回答 2

123456a134

回答已采纳

发布于 2018-03-21 04:37:47

在SQLServer 2008及更新版本中,可以将DateTime转到Date,它移除时间元素。

代码语言:txt
AI代码解释
复制
WHERE Orders.OrderStatus = 'Shipped'  
AND Orders.ShipDate >= (cast(GETDATE()-6 as date))  

在SQLServer 2005及以下版本中,可以使用:

代码语言:txt
AI代码解释
复制
WHERE Orders.OrderStatus = 'Shipped'  
AND Orders.ShipDate >= DateAdd(Day, Datediff(Day,0, GetDate() -6), 0)

一夜之后的沉默

发布于 2018-03-21 05:36:53

这是我发现的最简单的东西

代码语言:txt
AI代码解释
复制
-- Midnight floor of current date

SELECT Convert(DateTime, DATEDIFF(DAY, 0, GETDATE()))

DATEDIFF返回1900-1-1之前或之后的整数天数,转换日期时间将返回到午夜的那个日期。

因为DateDiff返回一个整数,所以可以使用加或减天数来获得正确的偏移量。

代码语言:txt
AI代码解释
复制
SELECT Convert(DateTime, DATEDIFF(DAY, 0, GETDATE()) + @dayOffset)

结果表明,可以将5添加到GetDate()中,并且按预期工作。

代码语言:txt
AI代码解释
复制
-- Round Current time to midnight today or midnight tomorrow

SELECT Convert(DateTime, DATEDIFF(DAY, 0, GETDATE() + .5))

我在SQLServer 2008上做了所有的尝试,但我认为这些功能也适用于2005年。

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

如何将当前时间作为日期时间?

2384

将PHP字符串舍入到2位小数的正确方法是什么?

2441

Unix时间戳的日期时间?

2229

在SQL Server数据库中删除部分日期时间的最佳方法?

2702

活动日期截止时间?

1411
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档