我试图只选择 500 毫秒以内的行,但我不确定仅使用 MySQL 是否可行?
我当前的代码是:
$stmt = $mysqli->prepare('SELECT chat_user, chat_msg FROM chat_msg
WHERE chat_id = ?
AND chat_time > (NOW() - INTERVAL 1 SECOND)
AND chat_user != ?');
我无法将其插入代码块。
最佳答案
MySQL 的 DATE_SUB
函数(文档 here )接受 MICROSECOND
作为间隔类型之一,因此您可以减去 500 * 1000 微秒并将其转换为 时间戳
,例如:
$stmt = $mysqli->prepare('SELECT chat_user, chat_msg FROM chat_msg
WHERE chat_id = ?
AND chat_time > (NOW() - INTERVAL 500000 MICROSECOND)
AND chat_user != ?');
如果 chat_time
是 Timestamp
类型,您可以使用 TIMESTAMP(NOW() - INTERVAL 500000 MICROSECOND);
或 UNIX_TIMESTAMP (NOW() - INTERVAL 500000 MICROSECOND);
在 WHERE
条件下。
关于php - MySQL now() 间隔以毫秒为单位可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44474758/