在我的数据库表中:
id_client
(主键和auto_increment)
name_client
(varchar)
time_insert
(日期时间)
例如表格中的数据:
---------------------------------------
| id_client name_client time_insert
| 1 tintin 2012-08-17 11:04:04
| 2 tata 2012-08-17 11:06:15
| 3 toto 2012-08-17 11:10:05
如果我想删除time_insert
离系统时间最近(最接近)的行,该如何编写命令?
答案 0 :(得分:1)
ORDER BY
AND LIMIT
也适用于删除声明。
DELETE FROM your_table ORDER BY time_insert desc LIMIT 1
答案 1 :(得分:1)
您还可以使用以下内容 - 如果您想要将now()
更改为您想要返回的日期,则可以使用后退版本:
delete from tableName order by abs(now()-insert_time) asc limit 1
答案 2 :(得分:1)
我建议使用服务器端时间,并且能够让用户选择他们的时区。 通过使用服务器时间,您可以这样做
$curtime=date('Y-m-d\TH:i:s\Z');//get cureent time of surver
$curtime=date('Y-m-d\TH:i:s\Z', round(strtotime($curtime)/60)*60);
$tim1=strtotime("+2 minutes",strtotime($curtime));
$t1=date('Y-m-d\TH:i:s\Z',$tim1);
$tim2=strtotime("-2 minutes",strtotime($curtime));
$t2=date('Y-m-d\TH:i:s\Z',$tim2);
$sql="DELETE FROM tbl_name WHERE time_insert BETWEEN '$t2' AND '$t1'";
通过使用此功能,您可以删除时间接近当前时间的行。例如,我使用2分钟间隔。