MYQSL Nur einzelne Colums / Datum reformat

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
cbesi
User
Beiträge: 41
Registriert: Dienstag 11. August 2020, 22:04

Hallo zusammen,

ich stecke leider fest:

Ich habe ein Tool programmiert, welches aus einer Firebird DB Daten abholt, diese in eine CSV (Archiv) scheibt und dann in eine MYSQL schreiben soll.

Funktioniert soweit, nur passt der Datenstream aus der Firebird nicht zum MYSQL.

So ist der Output der row:

('Name', 'Vorname', datetime.date(2021, 11, 30), Mitarbeitnummer)

Problem ist das Datetime. ich muss dieses so umformatieren das die MYSQL es schluckt also z.B. 2021-11-30

Leider bekomme ich es nicht hin, kann mir jemand einen Impuls geben wie ich hier weiter komme?

Code: Alles auswählen


#Ergebnis anzeigen und in csv schreiben und in MYSQL schreiben



with open((dnamezusammen + ".csv"), "w", encoding='utf-8') as outfile:
    writer = csv.writer(outfile, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
    writer.writerow([i[0] for i in cur.description])



    for row in cur:

        writer.writerow(row)

        short = (row)

        print(short)

        curmysql.execute('INSERT INTO helferanwesend(Name, Vorname, Datum, Helfernr)' \
                     'VALUES("%s", "%s", "%s", "%s")'
                     , short)









#data = pd.read_csv('Anwesend_20211129.csv', sep=";",error_bad_lines=False)
#print(data)
#data.head(5)
#print(data.head(5))

#data.iloc[2]['NAME']
#print(data.iloc[1]['NAME'])

cnx.commit()
conn.close()




cnx.close()



cbesi
User
Beiträge: 41
Registriert: Dienstag 11. August 2020, 22:04

Ist auch gelöst :-) habe anstelle mysql.connector pymysql genutzt, den Tuple habe ich mit aufgelöst mit

name1, vorname1, dat1, helfnr1 = (row)
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

Was sollen denn die 1en an den Variablennamen? So wie der Code da steht, brauchst Du das auflösen des Tuples gar nicht. Die Anführungszeichen um die %s gehören da nicht hin.
Antworten