簡體   English   中英

python-mysql 查詢中的日期時間格式無效

[英]Invalid datetime format in python-mysql query

我想從數據庫中獲取一條記錄,該記錄的datetime字段是主鍵的一部分。 我正在使用mysqldb packagepython查詢,這導致錯誤

無效的日期時間格式

其中相同的查詢在通過命令行和 mysql 工作台執行時工作正常。

我的代碼看起來像這樣。

def get_all_list(table_name, modify_dt, params):
    cursr = connections['default'].cursor()
    stmt = 'select * from ' + table_name + ' where ' + params 
    cursr.execute(stmt)
    data = cursr.fetchall()

params 是包含我的主鍵值的字符串。

例如

params is "join_date = '2016-09-08 00:00:00+00:00'"

我的最終查詢看起來與此類似

select * from employee where join_date = '2016-09-08 00:00:00+00:00'

執行時,同樣在 mysql 工作台中提供結果,而通過我的程序執行時,我收到錯誤消息

日期時間值不正確:第 1 行的“join_date”列的“2016-09-08 00:00:00+00:00”

日期格式應該是

'2016-09-08 00:00:00'

如果需要設置時區,則需要單獨的SQL查詢

set time_zone='+00:00';

另請參閱: 如何設置 MySQL 的時區?


如果您使用的是 django,您可以在設置文件中為整個應用程序設置 time_zone:

DATABASES['default'] = {
    'ENGINE': 'your_db_engine',
    'NAME': 'my_database',
    'USER': 'username',
    'PASSWORD': 'password',
    'HOST': 'localhost',
    'PORT': 3306,
    'OPTIONS': {
        "init_command": "SET storage_engine=InnoDB; set time_zone='+00:00';",
    },
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM