php,mysql时间差问题

表中有个datetime类型字段dtime,我需要从表中提取当前时间与dtime相差不到2个小时的那条记录,然后在php中进一步操作,其中的时间差怎么计算?
比如 现在时间是‘2009-04-22 09:30:00’,我需要取出表中’2009-04-22 09:30:00‘到‘2009-04-22 11:30:00’之间存在的记录
最新回答
锁骨草莓印

2026-03-28 21:56:06

不大明白需求,是要提取跟当前时间相差不到两个小时的记录吗,如果是这样
在sql语句中用UNIX_TIMESTAMP
"select 要读取的字段 from 表 where UNIX_TIMESTAMP(dtime) < (UNIX_TIMESTAMP(now())+2*3600) and UNIX_TIMESTAMP(dtime) >UNIX_TIMESTAMP(now())"
或者
"select 要读取的字段 from 表 where UNIX_TIMESTAMP(dtime) < (".time()."+2*3600) and UNIX_TIMESTAMP(dtime) > '".time()."'"
蘇瑾熙

2026-02-26 10:26:32

应该这样写SQL语句:

$now=time();
$next=$now+2*3600;
$SQL="select * from 表 where UNIX_TIMESTAMP(dtime) BETWEEN $now AND $next";

上面的$now、$next、UNIX_TIMESTAMP(dtime) 都是从1970年1月1日0时0分0秒到那个时刻的秒数值,利用这个整数类型的量,非常容易控制时间条件。
浅笑未央人自笑

2026-07-03 22:29:03

select * from tb where (UNIX_TIMESTAMP()-dtime)>7200