php - PHP时间和SQL时间有什么区别?

标签 php mysql datetime time

为什么 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/

相关文章:

php - 如何使用 PHP 和 AJAX 过滤服装尺寸?

php - 在当前目录之上的目录上使用 glob?

python - 如何检查变量是否是 datetime.datetime 或 datetime.date 的实例

mysql - 为什么 DATE_FORMAT 看起来不像

php - 重力形成多步 anchor 偏移

php - Ajax post 请求仅在有多个 echo 语句时打印

Php mysql 查询中的条件语法

php - Laravel - SQLSTATE [42000] : Syntax error or access violation: 1064 on migration

php - Wordpress - ACF - 获取具有重复开始和结束日期的帖子

mysql - 如何处理ActiveRecord中的无效日期