我的数据库中有一个名为end_date的列,它是一个varchar而不是日期,格式为01/07/2015。我试图从今天的日期拉行超过7天的行。MySql获取超过7天的记录(Varchar)
我试过以下。
$d = date('d/m/Y', strtotime(' -7 day')); // 7 days ago 24/06/2015
$sql = mysql_query("SELECT * FROM products WHERE end_date < '".$d."'");
或
$sql = mysql_query("SELECT * FROM products WHERE DATE_FORMAT(STR_TO_DATE(end_date, '%d/%m/%Y'), '%Y%m%d') < '".$d."'");
从yeserday所有返回行,2天前等,而不是仅仅是超过7天前行。有没有办法做到这一点,如果end_date列是varchar?
这个问题是,为什么在MySQL存储日期为varchar,而不是正确的日期/时间类型是一个坏主意,一个很好的例子。 – piotrm
与问题无关请动 – user3439600