2013-08-20 44 views
0

我在datebase上有表:id,mark,date。在mysql中删除字符串日期

日期格式是这样的: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()); 

如何写入正确的查询?

回答

1

你可以这样说:

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

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

提示:不要使用mysql_ *功能,因为它们被正式弃用

0

首先你要你的字符串转换为使用STR_TO_DATE()一个MySQL日期。然后,比较使用常规的mysql日期算法和比较。

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