将日期截断为仅小时/分钟

新手上路,请多包涵

我如何像这样在 sql server 2008 中截断日期:

我有 2012-01-02 12:04:11.443 我只想选择 2012-01-02 12:00:00.0002012-01-02 12:04:00.000 (小时和分钟级别)

原文由 pufos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 526
2 个回答
declare @D as datetime = '2012-01-02T12:04:11.443'

select dateadd(hour, datediff(hour, 0, @D), 0)
select dateadd(minute, datediff(minute, 0, @D), 0)

原文由 Mikael Eriksson 发布,翻译遵循 CC BY-SA 3.0 许可协议

从 SQL Server 2022 CTP 2.1 开始,SQL 中有一个本机函数可以执行此操作,称为 DATETRUNC() 。您可以选择要将日期截断到的日期/时间级别。文档在 这里

 DATETRUNC(hour, YourDate)

原文由 Conor Cunningham MSFT 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进