如何仅从 SQL Server DateTime 数据类型返回日期

新手上路,请多包涵
SELECT GETDATE()

返回: 2008-09-22 15:24:13.790

我想要没有时间部分的日期部分: 2008-09-22 00:00:00.000

我怎么能得到那个?

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

阅读 661
2 个回答
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))

例如

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

给我

2008-09-22 00:00:00.000

优点:

  • 不需要 varchar<->datetime 转换
  • 无需考虑语言环境

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

从 SQL Server 2022 (16.x) 开始,另一个选项是 DATETRUNC() 函数使用 day 作为 datepart 参数的值:

 SELECT DATETRUNC(day, GETDATE());

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

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