在mysql中选择特定时间

时间:2014-08-27 11:35:14

标签: mysql sql

我们有一个名为created的列,它是一个mysql时间戳。我必须选择在前一天下午5点到现在的下午4:59之间创建的记录。

假设我将2014年8月25日的日期传递给该计划,它应该会在2014年8月24日下午5:00到25-8-2014 4:49 PM之间创建所有记录。我们如何编写查询来做到这一点?

2 个答案:

答案 0 :(得分:1)

select * from your_table
where created between 
curdate() - interval 1 day + interval 17 hour 
and
curdate() + interval 16 hour + interval 59 minute;

select * from your_table
where created between 
date_format(now() - interval 1 day, '%Y-%m-%d 17:00:00')
and
date_format(now(), '%Y-%m-%d 16:59:00');

select * from your_table
where created between 
concat(curdate() - interval 1 day, ' 17:00:00') /*note the whitespace before 17*/
and
concat(curdate(), ' 16:59:59');

答案 1 :(得分:0)

您可以使用BETWEEN子句。 BETWEEN运算符选择范围内的值。值可以是数字,文本或日期。

<强>语法:

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

示例:

Select *  from  tableNawhere created between date1 and date2;

注意:在您的情况下,date1应为(date2 - 1day)