两天前从MYSQL获取数据

时间:2013-05-08 01:34:51

标签: php mysql

您好我正在尝试从两天前获取数据库中的条目数。我有下面的代码从现在到两天前获取数据,但我只想要数据库中所有条目的数据从两天前的午夜到午夜。

这是我从现在到两天前必须得到的代码。

 SELECT * FROM vistordetails1 WHERE date_time >= ( NOW() - INTERVAL 2880 MINUTE )
我可以做这样的事吗

SELECT * FROM vistordetails1 WHERE date_time >= ( INTERVAL 1440 MINUTE - INTERVAL 2880 MINUTE )

6 个答案:

答案 0 :(得分:2)

关闭,试一试......

SELECT * FROM vistordetails1 
WHERE date_time <= ( NOW() - INTERVAL 1440 MINUTE ) 
  AND date_time >= ( NOW() - INTERVAL 2880 MINUTE )

SQL有时会让人感到困惑。尝试在编程结构中考虑这一点。如果你的价值在某个范围内,你想做点什么。

if(val > 1 && val < 10){
  //value is between 1 and 10 exclusive
}else{
  //value is out side the range
}

答案 1 :(得分:1)

SELECT *
  FROM visitordetails1
WHERE date_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 3 DAY) 
                    AND DATE_SUB(CURDATE(), INTERVAL 2 DAY)

<强> SQLFiddle

答案 2 :(得分:1)

您可以使用date()函数删除时间组件:

SELECT *
FROM vistordetails1
WHERE date_time >= ( date(NOW()) - INTERVAL 2880 MINUTE ) and
      date_time < date(now())

答案 3 :(得分:0)

如果您想要两个日期之间的项目,则需要设置最小值和最大值:

SELECT * FROM vistordetails1 WHERE date_time >= (NOW() - INTERVAL 2880 MINUTE) AND date_time <=  (NOW() - INTERVAL 1440 MINUTE)

答案 4 :(得分:0)

不,这实际上会在时间开始后的1天(1970年1月1日)中选择条目。试试这句话:

SELECT * FROM vistordetails1 
    WHERE date_time <= ( NOW() - INTERVAL 1440 MINUTE ) 
    AND date_time >= ( NOW() - INTERVAL 2880 MINUTE )

答案 5 :(得分:0)

这将考虑2整天:

select date(now()) as today, date_add(date(now()), interval -2 day) "2 days ago";

我正在使用功能日期向您说明如何获取完整日期时间的日期部分。适应您的需求,您将实现目标。