嗨,我正在尝试获取两天前数据库中条目数的行计数。我有下面的代码,它获取从现在到两天前的数据,但我只想要数据库中从午夜到两天前午夜的所有条目的数据。
这是我从现在到两天前必须得到的代码。
SELECT * FROM vistordetails1 WHERE date_time >= ( NOW() - INTERVAL 2880 MINUTE )
我能做一些像这个的东西吗
SELECT * FROM vistordetails1 WHERE date_time >= ( INTERVAL 1440 MINUTE - INTERVAL 2880 MINUTE )
关闭,尝试一下。。。
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
}
SELECT *
FROM visitordetails1
WHERE date_time BETWEEN DATE_SUB(CURDATE(), INTERVAL 3 DAY)
AND DATE_SUB(CURDATE(), INTERVAL 2 DAY)
SQLFiddle
您可以使用date()
函数来去除时间分量:
SELECT *
FROM vistordetails1
WHERE date_time >= ( date(NOW()) - INTERVAL 2880 MINUTE ) and
date_time < date(now())
如果您想要两个日期之间的项目,则需要设置最小值和最大值:
SELECT * FROM vistordetails1 WHERE date_time >= (NOW() - INTERVAL 2880 MINUTE) AND date_time <= (NOW() - INTERVAL 1440 MINUTE)
否,这实际上会选择时间开始后1天的条目(1。1970年1月(。试试这个语句:
SELECT * FROM vistordetails1
WHERE date_time <= ( NOW() - INTERVAL 1440 MINUTE )
AND date_time >= ( NOW() - INTERVAL 2880 MINUTE )
这将考虑整整2天:
select date(now()) as today, date_add(date(now()), interval -2 day) "2 days ago";
我使用函数date来向您说明如何获得完整日期时间的日期部分。适应你的需求,你就会达到目的。