0

像这个问题有很多问题和答案,但我找不到任何在 MYSQL 查询中实际使用它的问题和答案。我需要根据从现在到表中某个日期之间的特定天数来查询数据库。我现在有一些方法可以在 mysql 查询中进行数学运算,但不太知道如何开始。

任何建议如何使用 PHP 和 mysql 做到这一点?

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

4

3 回答 3

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子句中的字段上有索引。

于 2012-09-13T20:04:49.507 回答
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_ 函数运行它。

于 2012-09-13T20:02:34.500 回答
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;
于 2012-09-13T20:55:26.147 回答