mysql删除日期时间最接近系统时间的数据

时间:2012-08-17 09:10:59

标签: php mysql

在我的数据库表中:

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离系统时间最近(最接近)的行,该如何编写命令?

3 个答案:

答案 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分钟间隔。