MYSQL String richtig formatieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
matze1708
User
Beiträge: 112
Registriert: Dienstag 12. März 2019, 11:49

Hallo zusammen,

ich möchte ein Date_Format an den MySQl Server senden. Aber da dieses Format mit %Y ist, meint das PYthon es ist ein Parameter.

Wie kann ich das umgehen?

Code: Alles auswählen

Select 
ID
FROM tbl_Schiesstand Where StandID = 1 AND Standaufsicht =1 AND DATE_FORMAT(Beginn, '%Y-%m-%d') = CURDATE()

Code: Alles auswählen

def is_everyone_current_standaufsicht(db, range_id):
    print()
    with closing(db.cursor()) as cursor:
        cursor.execute("""Select 
                        ID
                        FROM tbl_Schiesstand 
                        Where StandID = %s AND Standaufsicht = 1 AND DATE_FORMAT(Beginn, '%Y-%m-%d') = CURDATE()""", (range_id,))
        return cursor.fetchone() is None
Sirius3
User
Beiträge: 18270
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum benutzt Du überhaupt `DATE_FORMAT`? Vorher hast Du `DATA` verwendet.
Benutzeravatar
sparrow
User
Beiträge: 4537
Registriert: Freitag 17. April 2009, 10:28

Ich habe hier kein MySQL installiert, aber ich glaube nicht, dass man das so kompliziert in der Abfrage verfrickeln muss.

Vielleicht so?

Code: Alles auswählen

Select 
ID
FROM tbl_Schiesstand Where StandID = 1 AND Standaufsicht =1 AND DATE(Beginn) = CURDATE()
matze1708
User
Beiträge: 112
Registriert: Dienstag 12. März 2019, 11:49

Date() war die Antwort. Da hätte ich auch drauf kommen können :-(
Benutzeravatar
__blackjack__
User
Beiträge: 14042
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@matze1708: Hat jeder Benutzer auf jedem Platz in jedem Stand seine eigene Aufsicht? Falls nein, und die Standaufsicht pro Stand, also für alle Plätze/Benutzer gilt, dann vermute ich mal das die Spalte `Standaufsicht` in der falschen Tabelle steht. Der Name `tbl_Schiesstand` ist mir auch noch nicht so ganz klar. Das sieht mir eher nach einem Protokoll aus. Sollte da überhaupt ein Eintrag drin sein wenn es keine Aufsicht gibt‽ Dann darf ja nicht geschossen werden, also gibt es auch keinen Beginn des Schiessens, folglich auch keinen Eintrag dafür im Protokoll.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Antworten