使用Python从MySQL数据库中删除旧数据

使用Python从MySQL数据库中删除旧数据,python,mysql,Python,Mysql,我想自动删除超过7天的记录,但它不起作用。消息显示旧数据已被删除,但实际上并没有删除数据 我的代码是: try: db= MySQLdb.connect("localhost","root","","testDB") cursor=db.cursor() sql="DELETE FROM CALLRECORD WHERE DATE< DATE_SUB(NOW(), INTERVAL 7 DAY)" try: cursor.execute(sq

我想自动删除超过7天的记录,但它不起作用。消息显示旧数据已被删除,但实际上并没有删除数据

我的代码是:

try:
    db= MySQLdb.connect("localhost","root","","testDB")
    cursor=db.cursor()
    sql="DELETE FROM CALLRECORD WHERE DATE< DATE_SUB(NOW(), INTERVAL 7 DAY)"
    try:
        cursor.execute(sql)
        db.commit()
        print "Deleted Older Data from database"

    except:
        db.rollback()
        print "Cann't delete older data"
    db.close()

except:
    print "localserver not connected"
试试看:
db=MySQLdb.connect(“本地主机”、“根目录”、“测试数据库”)
cursor=db.cursor()
sql=“从调用记录中删除,其中日期
我认为您在查询中犯了一个错误,您正在删除过去7天内插入的记录。使用以下查询代替您的查询:

DELETE FROM CALLRECORD
WHERE DATE < DATE_SUB(NOW(), INTERVAL 7 DAY)
DELETE FROM CALLRECORD
其中日期<日期(现在(),间隔7天)

您使用的是
而不是
嘿@Akash Nil您是否尝试更改运算符?它起作用了吗?很抱歉延迟sign,它没有删除数据请尝试在我的数据库数据中使用UNIX\u TIMESTAMP(DATE\u SUB(NOW(),INTERVAL 7 DAY)),每分钟您的代码都会删除python命令DATE=datetime.NOW().strftime(“%d/%m/%y”)输入我的callrecord的所有recorddate。然后,该日期相关信息将存储到callrecord中,然后,假设存储日期为2016年1月21日,它将删除较旧的数据。它将在2016年1月14日之前删除所有记录。