如何从数据库中提取具有特定日期的数据

时间:2014-02-22 14:59:54

标签: php mysql sql database datetime

我有一个表格包含问题作为数据 每个问题都有一行名为creation_date的行,它将创建问题的时间存储为unix timestamp

我想提取具有特定日期的所有问题,而我并不关心月份或年份。

例如:
我想提取在16天创建的所有问题。

我做了什么:

$today = date('d');

$query = mysql_query("SELECT * FROM questions WHERE qcreation_date = '$today' ");
$numRows = mysql_num_rows($query);
if ($numRows > 0) {
    while ($data = mysql_fetch_assoc($query)) {
        echo $data['questionTitle']."<br/>";
    }
} else {
    echo "There is not any data.";
}

$today变量将包含今天的日期,例如,如果今天为22/2/2004,则$today变量将包含代表今天的22天。

1 个答案:

答案 0 :(得分:1)

使用DAY()FROM_UNIXTIME()FROM_UNIXTIME()会将您的时间戳转换为日期时间戳。 DAY()将从中获取日期编号,然后您可以将其与之进行比较。

SELECT * FROM questions WHERE DAY(FROM_UNIXTIME(creation_date)) = '$today'

在此查询中减少使用PHP变量的另一种方法是使用CURDATE()

SELECT * FROM questions WHERE DAY(FROM_UNIXTIME(creation_date)) = DAY(CURDATE())

仅供参考,更好的方式就是使用$today = date('d')。使用mktime()会更复杂。