0

在我的数据库表中:

id_client(主键和自动增量)

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

4

3 回答 3

1

ORDER BYANDLIMIT也适用于删除语句。

DELETE FROM your_table ORDER BY time_insert desc LIMIT 1
于 2012-08-17T09:12:29.227 回答
1

您还可以使用以下内容 - 如果您想将删除更改为now()您想要返回的日期,这将起作用:

delete from tableName order by abs(now()-insert_time) asc limit 1
于 2012-08-17T09:17:19.387 回答
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 分钟间隔。

于 2012-08-17T09:29:44.380 回答