比较 MariaDB 和 MySQL 中的日期差异
Difference comparing dates in MariaDB and MySQL
我有两台服务器使用具有相似数据的相同应用程序。该应用正在尝试启动查询以检索某些记录,使用某些日期作为条件。
假设我们有这个数据:
ID
start_date
1
2021-07-14
2
2021-07-15
然后我们在每个系统中尝试这个查询。
系统 A - 10.1.48-MariaDB-0+deb9u2:
SELECT * FROM table WHERE start_date >= '2021-07-14 00:00:00' AND start_date < '2021-07-14 24:00:00'
它没有return任何东西
系统 B - MySQL 社区服务器 (GPL) 5.7.32:
SELECT * FROM table WHERE start_date >= '2021-07-14 00:00:00' AND start_date < '2021-07-14 24:00:00'
它returns:
ID
start_date
1
2021-07-14
我也试过删除时间“00:00:00”,但行为相同。
我想会有一个我可以更改的配置全局变量,因此它具有相同的结果。
如果可能,我不想更改查询。
有什么想法吗?
提前致谢
您应该更改查询。您建议“2021-07-14 24:00:00”和“2021-07-15 00:00:00”代表相同的值。
尝试改用它:
SELECT * FROM table WHERE start_date >= '2021-07-14 00:00:00' AND start_date <= '2021-07-14 23:59:59'
您还可以减少查询中的文字数量:
SELECT * FROM table WHERE DATE(start_date) = '2021-07-14'
我有两台服务器使用具有相似数据的相同应用程序。该应用正在尝试启动查询以检索某些记录,使用某些日期作为条件。
假设我们有这个数据:
ID | start_date |
---|---|
1 | 2021-07-14 |
2 | 2021-07-15 |
然后我们在每个系统中尝试这个查询。
系统 A - 10.1.48-MariaDB-0+deb9u2:
SELECT * FROM table WHERE start_date >= '2021-07-14 00:00:00' AND start_date < '2021-07-14 24:00:00'
它没有return任何东西
系统 B - MySQL 社区服务器 (GPL) 5.7.32:
SELECT * FROM table WHERE start_date >= '2021-07-14 00:00:00' AND start_date < '2021-07-14 24:00:00'
它returns:
ID | start_date |
---|---|
1 | 2021-07-14 |
我也试过删除时间“00:00:00”,但行为相同。
我想会有一个我可以更改的配置全局变量,因此它具有相同的结果。
如果可能,我不想更改查询。
有什么想法吗?
提前致谢
您应该更改查询。您建议“2021-07-14 24:00:00”和“2021-07-15 00:00:00”代表相同的值。 尝试改用它:
SELECT * FROM table WHERE start_date >= '2021-07-14 00:00:00' AND start_date <= '2021-07-14 23:59:59'
您还可以减少查询中的文字数量:
SELECT * FROM table WHERE DATE(start_date) = '2021-07-14'