我有一张表,其中使用了以下数据结构:
col1 col2 timestamp
value1 value11 2014-27-04 03:05:25
value2 value22 2014-28-04 03:05:25
value3 value33 2014-27-04 04:05:25
现在我想要检索时间戳大于等于03:05:25小时的行,但这应该是今天的数据...而不是前几天的数据。
为了解决这个问题,我使用了以下查询,但是这个
select * from tab1 where time(timestamp) > '03:05:25';
但是这也会返回前几天的所有数据。对此有任何帮助将非常有帮助。
答案 0 :(得分:0)
您可以使用
SELECT * FROM table WHERE TIME(timestamp)>01:01:01 AND DATE(timestamp) = DATE(NOW())
不适合你的需要吗?
Mel_T&#39>也会奏效。使用concat将其组合在一起或将其拆分为2个过滤器(时间和日期)。答案 1 :(得分:0)
要选择当天但晚于03:05:25的所有行,您可以执行以下操作:
select * from tab1 where timestamp > CONCAT(CURDATE(),' 03:05:25');
答案 2 :(得分:0)
select
`timestamp` AS `timestamp`,
date(`timestamp`) AS `date`,
time(`timestamp`) AS `time`
from `timestamps`
where date(`timestamp`) = date(now()) AND time(`timestamp`) >= '03:05:25'
;