我们有一个名为created
的列,它是一个mysql时间戳。我必须选择在前一天下午5点到现在的下午4:59之间创建的记录。
假设我将2014年8月25日的日期传递给该计划,它应该会在2014年8月24日下午5:00到25-8-2014 4:49 PM之间创建所有记录。我们如何编写查询来做到这一点?
答案 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)