Seite 1 von 1

MYQSL Nur einzelne Colums / Datum reformat

Verfasst: Dienstag 30. November 2021, 12:43
von cbesi
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()




Re: MYQSL Nur einzelne Colums / Datum reformat

Verfasst: Dienstag 30. November 2021, 13:36
von cbesi
Ist auch gelöst :-) habe anstelle mysql.connector pymysql genutzt, den Tuple habe ich mit aufgelöst mit

name1, vorname1, dat1, helfnr1 = (row)

Re: MYQSL Nur einzelne Colums / Datum reformat

Verfasst: Dienstag 30. November 2021, 14:00
von Sirius3
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.