为什么 PHP time()
函数生成的时间戳与 SQL 日期时间如此不同?
如果我在 PHP 中执行 date('Y-m-d', time());
,它现在会给我时间,这是应该的。如果我只使用 time()
部分并执行:
$now = time();
//then execute this statement 'SELECT * FROM `reservation` WHERE created_at < $now'
我一无所获。但是,嘿,所以如果 $now
的值是 1273959833 并且我查询了
'SELECT * FROM `reservation` WHERE created_at < 127395983300000000'
然后我会看到我创建的记录。我认为一个以微秒为单位进行跟踪,另一个以秒为单位进行跟踪,但我找不到任何相关文档!这两者之间的正确转换是什么?
最佳答案
time()
函数不返回微秒,因此如果您使用正确的数据类型,它应该可以工作。但是你现在有 2 种不同的数据类型,INT
和一个日期字段(可以是 DATE
/DATETIME
/TIMESTAMP
).如果您想将数据库中的日期与作为整数的时间戳进行比较,您可以使用如下内容:
SELECT * FROM Tbl WHERE UNIX_TIMESTAMP(date) < $timestamp;
关于php - PHP时间和SQL时间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841937/