2015-04-28 154 views
2

我在其中使用了下面的数据结构的表格:MySQL查询找上了日期时间记录过滤

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

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

+1

'其中timestamp> = CONCAT(CURDATE(),””,'03 :05:25')'? –

+0

@AbhikChakraborty ......感谢兄弟......也许是我可能问过的一个愚蠢的问题 – user3305327

+1

只要有意义,没有问题是愚蠢的,而你的问题是非常有效的问题。 –

回答

0

你可以使用

SELECT * FROM table WHERE TIME(timestamp)>01:01:01 AND DATE(timestamp) = DATE(NOW()) 

难道不符合您的需求?

Mel_T也会工作。使用concat将它放在一起或将其分成2个过滤器(时间和日期)。

0

要选择在同一天的所有行,但不迟于3时05分25秒,你可以这样做:

select * from tab1 where timestamp > CONCAT(CURDATE(),' 03:05:25'); 
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' 
;