我的表中有一个名为created_at的字段,它是一个时间戳。我正在尝试编写一个查询,其中 is 将为我提供时间戳中的日期是当前日期的数据。
$result = mysql_query("SELECT *FROM visitors WHERE DATE(FROM_UNIXTIME(created_at)) =
CURDATE()") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
我查找了如何从时间戳获取日期,这就是我使用 DATE(FROM_UNIXTIME(created_at)) 的原因。我的查询返回时没有找到任何内容,但我的数据库中确实有created_at 字段,它们是今天的日期。我究竟做错了什么?
时间戳数据类型包括秒,因此时间永远不会匹配。在比较之前,您需要修剪“created_at”时间戳和当前日期/时间 (now()) 中的秒数,以便您有机会仅匹配日期部分。例如:
select * from visitors where DATE_FORMAT(created_at,'%Y%c%d')=DATE_FORMAT(now(),'%Y%c%d')
Run Code Online (Sandbox Code Playgroud)