首页  >  文章  >  数据库  >  如何在MySQL中正确选择两个日期之间的数据?

如何在MySQL中正确选择两个日期之间的数据?

Barbara Streisand
Barbara Streisand原创
2024-11-24 16:04:43217浏览

How to Correctly Select Data Between Two Dates in MySQL?

在 MySQL 中选择两个日期之间的数据

在 MySQL 中处理日期和时间数据时,通常需要选择特定日期范围内的数据。但是,当使用created_at列作为日期时间值时,短日期的默认解释是午夜。

问题

您可能会遇到这样的查询的情况:尽管行的created_at时间戳落在指定日期内,以下内容不会返回行range:

SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-06'

解决方案:

问题是查询实际上选择的数据范围是 '2011-12-01 00:00:00 ' 到 '2011-12-06 00:00:00'。要解决此问题,有多种方法:

  • 扩展结束日期范围:将查询更改为使用以下范围:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
  • 使用 DATE_ADD ():在原结束日期上加一天计算结束日期日期:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)
  • 利用 BETWEEN 运算符提高可读性:
SELECT `users`.* FROM `users` WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))

使用这些方法中的任何一种都将正确选择属于指定范围内的数据日期范围,包括具有created_at时间戳的行,例如“2011-12-06” 10:45:36'。

以上是如何在MySQL中正确选择两个日期之间的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn