Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL数据库中的日期比较_Php_Mysql - Fatal编程技术网

Php MySQL数据库中的日期比较

Php MySQL数据库中的日期比较,php,mysql,Php,Mysql,由于有PHP方面的经验,我缺乏在数据库中比较两个日期的能力 我的数据库中存储了两个值。这些只是unix时间戳 值1:post\u时间 值2:expire\u time 过期时间仅为发布时间后7天。我只需要得到所有没有“过期”的帖子 目前我一直在使用:if($post['post_time'])>=time()-(60*60*24*7)),这很好。但是我更愿意在查询中找到一个解决方案来获得结果。而不是提取所有结果,然后再过滤它们 我的问题是: SELECT id, uid, title, desc

由于有PHP方面的经验,我缺乏在数据库中比较两个日期的能力

我的数据库中存储了两个值。这些只是unix时间戳

值1:
post\u时间

值2:
expire\u time

过期时间仅为发布时间后7天。我只需要得到所有没有“过期”的帖子

目前我一直在使用:
if($post['post_time'])>=time()-(60*60*24*7))
,这很好。但是我更愿意在查询中找到一个解决方案来获得结果。而不是提取所有结果,然后再过滤它们

我的问题是:

SELECT id, uid, title, description, 
       price, image, tags, post_type, 
       category, post_time, expire_time 
  FROM posts 
 ORDER BY RAND() LIMIT 8 

谢谢你的帮助

就像@Dagon那样做:

SELECT id, uid, title, description, 
       price, image, tags, post_type, 
       category, post_time, expire_time 
  FROM posts WHERE post_time >= UNIX_TIMESTAMP(NOW()) - (60*60*24*7) 
 ORDER BY RAND() LIMIT 8

转换为mysql语法:
WHERE post\u time>=UNIX\u时间戳(NOW())-(60*60*24*7)
Hmm让我试试@Dagon@kingkero,是的,我只是觉得很清楚如果闰秒\小时\天\年对你来说很重要,这不是正确的方法实际日期函数而不是基本的算术: