mysql查询在日期时间

时间:2015-04-28 13:41:54

标签: mysql sql

我有一张表,其中使用了以下数据结构:

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';

但是这也会返回前几天的所有数据。对此有任何帮助将非常有帮助。

3 个答案:

答案 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'
;