我有一个表格包含问题作为数据
每个问题都有一行名为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
天。
答案 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()
会更复杂。