列d是DATE,列t是时间,列v是例如INT。假设我需要2012年2月1日及以后的15:00之后记录的所有值。如果我写
d
t
v
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'
可能的?
您可以使用mysqlCONCAT()函数将两列加在一起,然后像这样进行比较:
CONCAT()
SELECT * FROM `mytable` WHERE CONCAT(`d`,' ',`t`) > '2012-02-01 15:00'