2016-05-27 6 views
1

Ran in ein Problem und etwas, das zunächst einfach schien.Erstellen von mehrzeiligen Datenbankabfragen in Python

Ich möchte, dies zu tun (Abfrage der Kürze halber verdummt hier wurde, ist es eigentlich viel länger und komplexer):

query = ("""INSERT INTO %s " % cfg['mysql.table'] 
       "('hostname', 'timestamp', 'metric', 'average', 'peakhigh', 'peaklow', 'gsamp', 'zsamp', 'nsamp')""" 
       "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)" 
      ) 

So wie incorpoarate ich STR_TO_DATE in diese Abfrage für den Zeitstempel-Feld?

Danke für jede Hilfe.

+0

innerhalb dreifachen Anführungszeichen Aufbau Ihrer Abfrage versuchen. – Gadget

+0

Wie machen Sie diese Komponente der Zeichenfolge mit dem Triple-Quote-Ansatz - "INSERT INTO% s"% cfg ['mysql.table']? – BenH

Antwort

1

Setzen Sie Ihre String in dreifachen Anführungszeichen:

query = ("""INSERT INTO %s " % cfg['mysql.table'] 
       "('hostname', 'timestamp', 'metric', 'average', 'peakhigh', 'peaklow', 'gsamp', 'zsamp', 'nsamp')" 
       "VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)""" 
      ) 
+0

Ok lass mich das nochmal probieren, ich muss etwas fett gefingert haben, als ich diesen Ansatz vor dem Posten versucht habe. – BenH

+0

Irgendeine Idee, wie ich STR_TO_DATE für das Timestamp-Feld incoproate? – BenH

+0

Versuchen Sie, das zweite '% s' mit' STR_TO_DATE (% s, '% d /% m /% Y') 'zu ändern, wenn das mit dem gewünschten Format TT/MM/JJJJ übereinstimmt. – Gadget

Verwandte Themen