1. 程式人生 > 資料庫 >python3實現往mysql中插入datetime型別的資料

python3實現往mysql中插入datetime型別的資料

昨天在這個上面找了好久的錯,嚶嚶嚶~

很多時候我們在爬取資料儲存的時候都需要將當前時間作為一個依據,在python裡面沒有時間型別可以直接拿來就用的。我們只需要在儲存之前將時間型別稍作修飾就行。

datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

如:

#插入產品資訊
 insert_good_sql = """
 INSERT INTO T_GOOD(good_name,good_type,img_src,good_description,how_to_use,volumetric,price,sale,spider_time)
 VALUES(%s,%s,%s)
 """
 values = (pymysql.escape_string(data_dict['good_name']),pymysql.escape_string(data_dict['good_type']),data_dict['img_src'],pymysql.escape_string(data_dict['good_description']),data_dict['how_to_use'],pymysql.escape_string(data_dict['volumetric']),pymysql.escape_string(data_dict['price']),data_dict['sale'],datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
 cursor.execute(insert_good_sql,values)

補充拓展:談談python寫入mysql中datetime型別遇到的問題

剛開始使用python,還不太熟練,遇到一個datetime資料型別的問題:

在mysql資料庫中,有一個datetime型別的欄位用於儲存記錄的日期時間值。python程式中有對應的一個datetime變數dt。

現在需要往mysql資料庫中新增記錄,每次新增時,將datetime型變數dt寫入mysql資料庫tablename表中exTime欄位裡。

問題,如何寫入?除錯時,總是無法寫入。

執行環境:windows10 python 3.6 mysql5.6.38

執行結果提示:

Process finished with exit code 0

#------看我寫的程式-------------
import datetime
import pymysql.cursors
conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='',db='test',charset='utf8',cursorclass=pymysql.cursors.DictCursor)
#中間略去dt賦值部分...
print(dt.strftime('%Y-%m-%d %H:%M:%S'))
#執行結果是 2001-1-2 11:00:00
sql_insert=sql_insert="INSERT into tablename(exTime) values(%s)" %(dt.strftime("%Y-%m-%d %H:%M:%S"))
#如果此處寫成sql_insert=sql_insert="INSERT into tablename(exTime) values('2001-1-2 11:00:00')" 則可以執行

try:
 with conn.cursor() as csor1:
 
 csor1.execute(sql_insert)
 conn.commit()
 csor1.close()
except Exception as e:
 #錯誤回滾
 conn.rollback()
finally:
 conn.close()
###-----------------------------------

後來在網上查了一下,mysql中datetime型別欄位,賦值時最好用str_to_date函式轉化成mysql的datetime型別

因此,把上面的程式改了一下:

sql_insert=sql_insert="INSERT into tablename(exTime) values(str_to_date(\'%s\','%%Y-%%m-%%d %%H:%%i:%%s'))" %(dt.strftime("%Y-%m-%d %H:%M:%S"))

重新執行,通過!

以上這篇python3實現往mysql中插入datetime型別的資料就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。