我的表tracking_orders
有一个名为order_time
的列。创建新行时,将创建数据,以便将其放入该列:
$order_time= date('F j, Y');
当我插入新行时,我使用代码:
$sql = "insert into tracking_orders (order_time) values ('".$order_time."')";
今天,如果我使用该查询,该列的数据将显示为:April 8, 2014
我正在尝试进行删除查询以查找表中超过1年的任何行,然后将其删除。因此,如果我在去年4月8日的同一天做了一行,那么它将被删除。如果order_time
列数据是2013年4月9日,那么它将被单独留下。
非常感谢所有帮助。
答案 0 :(得分:2)
尝试:
delete from sh_cart where shsc_date< DATE_ADD(NOW(), Interval -12 MONTH);
检查: [链接] http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
如果您的列是VARCHAR:
delete from tracking_orders where STR_TO_DATE(order_time, '%M %e, %Y')< DATE_ADD(NOW(), Interval -12 MONTH);
答案 1 :(得分:0)
我假设您将日期存储为字符串(VARCHAR)而不是正确的DATE类型。此格式不允许您使用SQL的本机日期函数,例如DATE_DIFF()
或DATE_ADD()
将来,我强烈建议您尽可能将列更改为DATE类型,并以YYYY-MM-DD
格式存储日期。您可以在显示时将其重新格式化为用户友好的格式,但在数据库中,标准数值数据总是更好(特别是如果此表变大)