Aktuelles Datum und Uhrzeit mit php in MSSQL DB schreiben
Hallo,
Ich moechte das das Aktuelle Datum und Uhrzeit bei einem update von einem
php Formular in der MSSQL DB geschrieben wird.
Das DB Feld habe hat das Format date und heist aenderungsdatum.
Wie muss ich das im PHP Formular schreiben?
$sql = "UPDATE Ergebnisse SET aenderungsdatum='".$_POST['????????']."',
Danke.
Gruss
Helmut
Ich moechte das das Aktuelle Datum und Uhrzeit bei einem update von einem
php Formular in der MSSQL DB geschrieben wird.
Das DB Feld habe hat das Format date und heist aenderungsdatum.
Wie muss ich das im PHP Formular schreiben?
$sql = "UPDATE Ergebnisse SET aenderungsdatum='".$_POST['????????']."',
Danke.
Gruss
Helmut
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 171215
Url: https://administrator.de/contentid/171215
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
13 Kommentare
Neuester Kommentar
Hi,
in MySQL würde ich einfach NOW() im Query verwenden.
Dar dies aber MSSQL ist musste ich kurz suchen um das passende (?) äquivalent zu finden: MSDN - SQL - GETDATE()
Hoffe das hilft
~Arano
in MySQL würde ich einfach NOW() im Query verwenden.
Dar dies aber MSSQL ist musste ich kurz suchen um das passende (?) äquivalent zu finden: MSDN - SQL - GETDATE()
Hoffe das hilft
~Arano
Nabend,
mit MSSQL habe ich noch nicht gearbeitet, kenne es daher auch nicht.
Aber hier nach: MSDN - SQL - CONVERT() wird durch die Angabe von varchar(8) in deinem Query, das Datetime in eine Zeichenkette konvertiert die nur 8 Zeichen lang ist - ergo muss da etwas fehlen !
2. (Ich meine darauf wurde schon mal hingewiesen ?) Dein Feld "aenderungsdatum" ist vom Type "date", kann dieses auch zusätzlich einen Zeitwert erfassen oder müsste es dafür auf "datetime" geändert werden !?
und 3. bin ich mir nicht sicher ob es möglich ist, dem Dateityp "date" zu sagen wie er das Datum zu speichern hat, das geschieht meines Verständnisses immer nach internen Vorgaben! Daher könntest du auch den dritten Parameter in deiner CONVERT()-Funktion beim Speichervorgang weglassen.
Was geschieht denn wenn du es so versuchst?
Hilfreich für dich kann es auch sein, sofern möglich, die Abfragen testweise in einer Konsole auszuführen bzw. von dieser aus zu überprüfen was den nun tatsächlich in die Datenbank gespeichert wird.
~Arano
mit MSSQL habe ich noch nicht gearbeitet, kenne es daher auch nicht.
Aber hier nach: MSDN - SQL - CONVERT() wird durch die Angabe von varchar(8) in deinem Query, das Datetime in eine Zeichenkette konvertiert die nur 8 Zeichen lang ist - ergo muss da etwas fehlen !
2. (Ich meine darauf wurde schon mal hingewiesen ?) Dein Feld "aenderungsdatum" ist vom Type "date", kann dieses auch zusätzlich einen Zeitwert erfassen oder müsste es dafür auf "datetime" geändert werden !?
und 3. bin ich mir nicht sicher ob es möglich ist, dem Dateityp "date" zu sagen wie er das Datum zu speichern hat, das geschieht meines Verständnisses immer nach internen Vorgaben! Daher könntest du auch den dritten Parameter in deiner CONVERT()-Funktion beim Speichervorgang weglassen.
Was geschieht denn wenn du es so versuchst?
<?php
// zum speichern
$sql = "UPDATE Ergebnisse SET aenderungsdatum=GETDATE()",
// beim auslesen
$sql = "SELECT CONVERT(varchar, aenderungsdatum, 4) AS formatiertesdatum FROM Ergebnisse",
// kann fehlerhaft sein ! (habe halt nur MySQL-Kenntnisse)
?>
Hilfreich für dich kann es auch sein, sofern möglich, die Abfragen testweise in einer Konsole auszuführen bzw. von dieser aus zu überprüfen was den nun tatsächlich in die Datenbank gespeichert wird.
~Arano
Moin helmuthelmut2000,
Wenn du die Sekunden haben willst, dann verwende den style 120 plus eine angemessene varchar-Länge [yyyy-mm-dd hh:mi:ss(24h)]
Grüße
Biber
Zitat von @helmuthelmut2000:
Hallo,
Ich hab jetzt mal folgendes versucht:
aenderungsdatum=CONVERT (varchar(8), getdate(),4)
Warum schreibt es mir da immer nur das Datum und die Zeit ist immer?
00:00:00
Was soll der Ärmete denn anderes tun bei deinen Vorgaben?Hallo,
Ich hab jetzt mal folgendes versucht:
aenderungsdatum=CONVERT (varchar(8), getdate(),4)
Warum schreibt es mir da immer nur das Datum und die Zeit ist immer?
00:00:00
- in einen VarChar(8), der einen Datumswert aufnehmen soll, passen doch nur "dd.mm.yy", es sei denn, du stellst Stunden, Minuten und Sekunden in die zweite Reihe.
- und der style 4, den du explizit verlangst, gibt passend dazu das Format "dd.mm.yy" an. So what? -> works as designed..
Wenn du die Sekunden haben willst, dann verwende den style 120 plus eine angemessene varchar-Länge [yyyy-mm-dd hh:mi:ss(24h)]
' ' |
Grüße
Biber
Moin helmuthelmut2000,
wie Arano geschrieben hat und auch ich:
Was ich geschrieben habe ist:
Grüße
Biber
wie Arano geschrieben hat und auch ich:
- du kannst mit einem GETDATE()-Aufruf ein DATE-Feld befüllen oder ein Varchar(8)-Feld -> das Ergebnis wird "Datum" sein mit Std/Min/Sek auf "0" gesetzt.
- oder du kannst mit einem GetDate()-Aufruf in ein Datetime-Feld-Schreiben. Dann hast du auch hh:mm:ss plusMillisekunden und musst es in der Anzeige "nachformatieren"
Was ich geschrieben habe ist:
- ja, es gibt eine "Zeig mit Datum+Zeitformatierung", nämlich den style 120 (oder ohne Jahrhundertangaben style 20). der beginnt allerdings mit der ISO-Datumsdarstellung "[yy]yy-mm-dd" , die du wahrscheinlich nich möchtest.
- akzeptabler Kompromiss - brate dir ein Varchar(15)-Feld zusammen aus Datum-als-varchar(8) wie oben plus ein Leerzeichen plus Zeit als Varchar(6). Siehe meinen Kommentar zuvor.
Grüße
Biber