J'ai un morceau de code en python qui lit à partir d'un fichier Excel et enregistre dans la base de données redshift.Impossible de lire les valeurs de date au format correct à partir du fichier Excel et de l'enregistrer dans une base de données en utilisant python
import psycopg2
def from_redshift():
book = xlrd.open_workbook("excelfile.xlsx")
sheet = book.sheet_by_index(0)
con = psycopg2.connect(dbname='dbname', host='something.com', port=portnum, user='username', password='password')
cursor=con.cursor()
query = """INSERT INTO table_name (col1, col2, col3, start_date, update_date) VALUES (%s, %s, %s, %s, %s)"""
for r in range(1, sheet.nrows):
col1 = sheet.cell(r,0).value
col2 = sheet.cell(r,1).value
col3 = sheet.cell(r,2).value
start_date = sheet.cell(r,3).value
update_date = sheet.cell(r,4).value
# Assign values from each row
values = (col1, col2, col3, start_date, update_date)
# Execute sql Query
cursor.execute(query, values)
print("Executed")
# Close the cursor
cursor.close()
Le code fonctionne très bien en lecture et l'insertion dans la base de données, mais ma question est que la « start_date
» et les champs « update_date
» sont des datetime
dans la base de données, lorsque je tente d'insérer ensuite, il me donne l'erreur que les valeurs de ces deux colonnes ne sont pas dans le bon format, et quand j'ai changé ces deux colonnes à varchar
dans la base de données, il insère ces valeurs sont un nombre étrange comme 23.12345
(quelque chose comme ça).
Les valeurs dans ces deux colonnes ressemblent à YYYY-MM-DD HH:MM:[SS]
(format personnalisé).
Comment puis-je obtenir ces valeurs de date dans la base de données correctement?
# Commit the transaction
con.commit()
con.close()
Connexes: https://stackoverflow.com/questions/26010455/convert-xldate-to-python-datetime –
Connexes: https://stackoverflow.com/questions/3727916/how-to-use-xlrd-xldate -as-tuple –