删除mysql中的字符串日期

时间:2013-08-20 08:34:00

标签: php mysql

我在datebase上有表: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());

如何写出正确的查询?

2 个答案:

答案 0 :(得分:1)

你可以这样做:

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

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

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

答案 1 :(得分:0)

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

DELETE FROM result
WHERE STR_TO_DATE(`date`, '%d.%m.%Y') < NOW() - INTERVAL 7 DAY