如何将此数据库的日期时间与MySQL数据库进行比较?
我使用MySQL函数now()在数据库记录中发送日期,并试图检测超过30天的记录。
if (date_diff($myrow["LastLogin"], time()) > -30) {
}
$myrow["LastLogin"]
包含有效值,因为我将其视为文本。在数据库中确认它是“日期时间”类型。
这里有更多的代码。
if ($myrow = mysql_fetch_array($result_set)) {
do {
if (date_diff($myrow["LastLogin"], getdate()) > -30) {
echo "<tr>";
echo "<td>" . $myrow["PCName"] . ' </td>';
echo "<td>" . $myrow["LastLogin"] . ' </td>';
echo "</tr>\n";
}
} while ($myrow = mysql_fetch_array($result_set));
}
谢谢你!
答案 0 :(得分:7)
在您的查询中执行,而不是在代码中执行。
SELECT * FROM myTable WHERE LastLogin < DATE_SUB(NOW(), INTERVAL 30 DAY)
答案 1 :(得分:1)
您可以通过
进行服务器端SELECT * FROM logins WHERE LastLogin < NOW() - INTERVAL 30 DAY
如果你需要在客户端进行,可能更容易使用返回整数的UNIX_TIMESTAMP
:
SELECT l.*,UNIX_TIMESTAMP(LastLogin) AS LastLogin_i FROM logins l
如果这些都不符合您的需求,您可以使用LastLogin
转换strtotime()
返回的字符串:
lastLogin_i = strtotime($myrow["LastLogin"]);
答案 2 :(得分:1)
此查询将删除lastlogin值超过30天的记录。
Delete from table where ((now() - lastlogin) > (30*24*60*60))