有很多问题和答案就像这样question,但我找不到任何在MYSQL查询中实际使用它的问题。我需要根据现在和表格中的日期之间的特定天数来查询数据库。我现在有办法在mysql查询中做数学,但不太知道如何开始。
有关如何使用PHP和mysql执行此操作的任何建议吗?
很抱歉没有提及,我的日期字段是unix时间戳。那么如何用这种格式实现呢?
答案 0 :(得分:2)
我假设您正在为datetime
字段寻找类似的内容:
SELECT *
FROM table
WHERE datetime_field BETWEEN (NOW() - INTERVAL 2 DAY) AND NOW()
日期字段的轻微修改
SELECT *
FROM table
WHERE date_field BETWEEN (DATE(NOW()) - INTERVAL 2 DAY) AND DATE(NOW())
出于多种原因,您不应使用unix时间戳字段来存储日期时间。但如果你真的坚持这样做的话。
SELECT *
FROM table
WHERE date_field BETWEEN UNIX_TIMESTAMP(NOW() - INTERVAL 2 DAY) AND UNIX_TIMESTAMP(NOW())
确保WHERE
子句中的字段有索引。
答案 1 :(得分:1)
你的意思是DateDiff函数吗?
SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate
http://www.w3schools.com/sql/func_datediff_mysql.asp
$sql = "SELECT DATEDIFF('".$startDate."', '".$endDate."') AS DiffDate";
然后通过PDO或mysqli_函数运行它。
答案 2 :(得分:0)
在PHP中,您可以这样做:
$date1 = '1348117200000'; //From table for date 09/20/2012
$date2 = time(); //Current time
$diffDate = $date1 - $date2;
然后在查询中使用$ diffDate。
$sql = 'SELECT * FROM DATE_TABLE WHERE DATE_FIELD = ' . $diffDate;