比较 DATETIME 和 DATE 忽略时间部分

新手上路,请多包涵

我有两个表,其中列 [date]DATETIME2(0) 的类型。

我必须仅按日期部分(日+月+年)比较两条记录,丢弃时间部分(小时+分钟+秒)。

我怎样才能做到这一点?

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

阅读 495
2 个回答

在 SQL Server 2008 中使用 CAST 到新的 DATE 数据类型来仅比较日期部分:

 IF CAST(DateField1 AS DATE) = CAST(DateField2 AS DATE)

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

您可以使用 DateDiff 并按天进行比较。

 DateDiff(dd,@date1,@date2) > 0

这意味着 @date2 > @date1

例如 :

 select DateDiff(dd, '01/01/2021 10:20:00', '02/01/2021 10:20:00')

结果:1

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

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