小编典典

如何合并来自不同MySQL列的日期和时间以与完整的DateTime进行比较?

sql

d是DATE,列t是时间,列v是例如INT。假设我需要2012年2月1日及以后的15:00之后记录的所有值。如果我写

SELECT * FROM `mytable` WHERE `d` > '2012-02-01' AND `t` > '15:00'

我希望看到它们时,将在15:00之前在任何日期所做的所有记录都排除在结果集中(以及在2012-02-01进行的所有记录)。如果只有一个DATETIME列似乎很容易,但是对于日期和时间则有单独的列,而不是我的情况。

我现在看到的最好的东西是

SELECT * FROM `mytable` WHERE `d` >= '2012-02-02' OR (`d` = '2012-02-01' AND `t` > '15:00')

还有更好的主意吗?也许在MySQL中有此功能?是否没有类似的东西

SELECT * FROM `mytable` WHERE DateTime(`d`, `t`) > '2012-02-01 15:00'

可能的?


阅读 170

收藏
2021-04-22

共1个答案

小编典典

您可以使用mysqlCONCAT()函数将两列加在一起,然后像这样进行比较:

SELECT * FROM `mytable` WHERE CONCAT(`d`,' ',`t`) > '2012-02-01 15:00'
2021-04-22