I Problem bei der Ausführung der folgenden Abfrage ist vorTable ‚tbl_name‘ angegeben wird zweimal, beide als Ziel für ‚UPDATE‘ und als separate Quelle für Daten
UPDATE tbluser_payment
SET payment_date = SUBSTRING(payment_date, 1, 2) + 1
WHERE
trans_updatetime IN (
SELECT
trans_updatetime
FROM
`tbluser_payment`
WHERE
DAY (
cast(trans_updatetime AS date)
) IN ('28', '29', '30', '31')
)
ich durch viele Fragen gesucht, aber nichts mit dieser Abfrage in Verbindung zu setzen sie wurden Datensatz in die Datenbank einfügen.
Ich möchte payment_date
coloumn mit 1, wenn where-Klausel return true
Ist dies möglich ist, durch diese Art und Weise aktualisieren?
Jede Hilfe wird geschätzt
Vielen Dank!
Zeigen Sie uns die Tabellendefinition und einige Beispieldaten. –
'SUBSTRING' gibt einen String (Text) zurück, was erwartest du, wenn du' + 1' mit einem Text machst? Aus Ihren Kommentaren entnehme ich, dass dies ein string-formatierter Datumswert ist. Dies ist etwas, was man nicht tun sollte ... Versuchen Sie Ihr 'payment_date' in ein korrektes Datumsformat zu bringen und rechnen Sie mit dem richtigen Typ. Wenn Sie das nicht ändern können (und Sie sollten es wirklich!), Können Sie es wieder in eine Zeichenfolge in Ihrem benötigten Format konvertieren .... – Shnugo