0

我在数据库上有表:id、mark、date。

日期格式如下:DD.MM.YYYY (DD: 01-31, MM: 01-12, YYYY: 0000-9999)

我需要在 php 上编写查询 Mysql,该删除行在记录和当前时间之间存在超过 7 天的差异。像这样:

    mysql_connect($this->hostname, $this->username, $this->password) OR die('Could not select database.');
    mysql_select_db($this->dbName) or die(mysql_error());
    $query = "delete from result where date-".date('d.m.Y')">7";//?
    mysql_query($query) or die(mysql_error());

如何编写正确的查询?

4

2 回答 2

1

你可以这样做:

DELETE FROM result WHERE NOW()>`date` + INTERVAL 7 DAY

提示:不要使用函数名和保留字作为列名或表名。

提示:不要使用 mysql_* 函数,因为它们已被正式弃用

于 2013-08-20T08:37:32.070 回答
0

首先,您必须使用STR_TO_DATE()将字符串转换为 mysql 日期。然后,使用常规 mysql 日期算术和比较进行比较。

DELETE FROM result
WHERE STR_TO_DATE(`date`, '%d.%m.%Y') < NOW() - INTERVAL 7 DAY
于 2013-08-20T08:41:16.090 回答