根据两个条件从表中搜索记录

时间:2014-09-11 13:36:58

标签: mysql

考虑一个表abc有两列device_date和device_time(两个varchar mysql)

            device_date    device_time
             1-1-2014       0:0:00
             1-1-2014       10:0:00
             2-1-2014       0:0:00
             3-1-2014       5:0:00
             1-1-2014       0:0:00
             1-1-2014       0:0:00

现在我想查找设备日期> = 2-1-2014和device_time > = 0:0:00

但结果集的所有记录都包含device_time > = 0:0:00 结果集应该只包含

     
             2-1-2014       0:0:00
             3-1-2014       5:0:00

但结果集是

             1-1-2014       0:0:00
             1-1-2014       10:0:00
             2-1-2014       0:0:00
             2-1-2014       5:0:00
             4-1-2014       0:0:00
             5-1-2014       0:0:00

查询就像select * from device_time> =' 0:0:00' AND device_date> =' 1-1-2014'

2 个答案:

答案 0 :(得分:1)

您需要将其转换为日期,然后对其进行比较。

SELECT * 
FROM table 
WHERE DATE_FORMAT( STR_TO_DATE( device_date , "%d-%m-%Y" ) , "%Y/%m/%d" ) > '2014/01/01' 

DEMO

编辑: 如果你想比较时间虽然它总是大于或等于00:00:00你可以使用相同的方法。

STR_TO_DATE(device_time, '%h:%i:%s')

答案 1 :(得分:-1)

您可以搜索

select * from table where device_date='1-1-2014' AND device_time='0:0:00';