如何计算两个日期之间的天数?

时间:2012-09-13 20:00:50

标签: php mysql unix-timestamp

有很多问题和答案就像这样question,但我找不到任何在MYSQL查询中实际使用它的问题。我需要根据现在和表格中的日期之间的特定天数来查询数据库。我现在有办法在mysql查询中做数学,但不太知道如何开始。

有关如何使用PHP和mysql执行此操作的任何建议吗?

很抱歉没有提及,我的日期字段是unix时间戳。那么如何用这种格式实现呢?

3 个答案:

答案 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;