当我在python中使用mysql时,警告1292

时间:2017-03-03 03:10:04

标签: python mysql sql-like

我必须检查数据库中是否有null, 我需要检查11列(or)和加号,以及年份(例如2017%)。

def test():
    sql= "select date from a000760 where (total_assets is null or total_liabilities is null or sales_figures is null or sales_cost is null or business_profits is null or gross_margin is null or current_income is null or depreciation_expense_of_tangible_assets is null or liquid_asset is null or noncurrent_asset is null or liquid_liability is null) and (date like '2010%')"
    curs.execute(sql)
    #year="2010"
    #curs.execute("select date from a000760 where (total_assets is null or total_liabilities is null or sales_figures is null or sales_cost is null or business_profits is null or gross_margin is null or current_income is null or depreciation_expense_of_tangible_assets is null or liquid_asset is null or noncurrent_asset is null or liquid_liability is null) and (date like %s)",year)
    result = curs.fetchall()
    if len(result)>0: // print shows () even if it's none. so, I use this
        print "a000760"
        print "2010 null exists"

这是一个表的测试版本。 我必须检查超过2000个表。 它适用于此def并显示错误(仅适用于一个表)。 但它不适用于总表。 我收到了这个错误:

Warning: (1292, "Incorrect date value: '2010%' for column 'date' at row 1")

我不知道怎么样...... 我搜索了整个语法, 但是当我输入%2017%时,它不起作用。

1 个答案:

答案 0 :(得分:0)

不要将like与日期一起使用!日期不是字符串。

你可以这样做:

year(date) = 2010

或者:

date >= '2010-01-01' and date < '2011-01-01'