在SQL列我有我想要一個SQL表像這樣插入日期爲從CSV
RegisterDate StoreID ProductID ProductType Quantity
30.12.2013 1002 00000576 001 10
1.1.2014 1002 00008577 001 20
2.1.2014 1002 00002917 002 12
3.1.2014 1002 00007542 003 1
4.1.2014 1002 00000964 002 1
在CSV數據,我使用Python來填充表。以下是我的代碼:
import pymysql as MS
import pandas as pd
db = MS.connect(host="localhost",user="root",passwd="passwd",db="db")
cursor = db.cursor()
cursor.execute("create table IF NOT EXISTS sales (productID INT (25), registerDate DATE, storeID INT(5), productType INT (3), Quantity INT (100));")
df = pd.read_csv('C:/Users/data.csv', encoding='latin-1')
for i in range (len(df)):
date = pd.to_datetime(df['RegisterDate'][i], format='%d.%m.%Y') # Converting the field value to datetime
data = [int(df['ProductID'][i]), date, int(df['StoreID'][i]), int(df['ProductType'][i]), int(df['Quantity'][i]]
cursor.execute('INSERT INTO sales(productID, registerDate, storeID, productType, Quantity)' 'VALUES("%s", "%s", "%s", "%s", "%s" )', data)
db.commit()
cursor.close()
但我收到以下錯誤:
Traceback (most recent call last):
File "C:/Users/PycharmProjects/testproject/database.py", line 17, in <module>
cursor.execute('INSERT INTO sales(productID, registerDate, storeID, productType, Quantity)' 'VALUES("%s", "%s", "%s", "%s", "%s" )', data)
File "C:\Python\Python35\lib\site-packages\pymysql\cursors.py", line 164, in execute
query = self.mogrify(query, args)
File "C:\Python\Python35\lib\site-packages\pymysql\cursors.py", line 143, in mogrify
query = query % self._escape_args(args, conn)
File "C:\Python\Python35\lib\site-packages\pymysql\cursors.py", line 118, in _escape_args
return tuple(conn.literal(arg) for arg in args)
File "C:\Python\Python35\lib\site-packages\pymysql\cursors.py", line 118, in <genexpr>
return tuple(conn.literal(arg) for arg in args)
File "C:\Python\Python35\lib\site-packages\pymysql\connections.py", line 821, in literal
return self.escape(obj, self.encoders)
File "C:\Python\Python35\lib\site-packages\pymysql\connections.py", line 814, in escape
return escape_item(obj, self.charset, mapping=mapping)
File "C:\Python\Python35\lib\site-packages\pymysql\converters.py", line 27, in escape_item
val = encoder(val, mapping)
File "C:\Python\Python35\lib\site-packages\pymysql\converters.py", line 110, in escape_unicode
return u"'%s'" % _escape_unicode(value)
File "C:\Python\Python35\lib\site-packages\pymysql\converters.py", line 73, in _escape_unicode
return value.translate(_escape_table)
AttributeError: 'Timestamp' object has no attribute 'translate'
我搜索了上面的錯誤,但沒有相關的答案。我該如何填寫其他欄目的日期?
首先找出您正在使用的RDBMS。 – Strawberry
我正在使用MySQL – muazfaiz
順便說一句,int關鍵字後面的括號裏的小數字並不代表什麼意思。 – Strawberry