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
13 Antworten
- LÖSUNG Luckyguy schreibt am 09.08.2011 um 18:56:16 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 21:18:04 Uhr
- LÖSUNG Xaero1982 schreibt am 09.08.2011 um 19:10:30 Uhr
- LÖSUNG Arano schreibt am 09.08.2011 um 19:13:56 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 01:32:37 Uhr
- LÖSUNG Arano schreibt am 12.08.2011 um 21:52:18 Uhr
- LÖSUNG Biber schreibt am 12.08.2011 um 22:01:24 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 22:37:00 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 22:49:25 Uhr
- LÖSUNG Biber schreibt am 12.08.2011 um 22:50:52 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 22:55:16 Uhr
- LÖSUNG Biber schreibt am 12.08.2011 um 23:06:25 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 13.08.2011 um 01:20:44 Uhr
- LÖSUNG Biber schreibt am 12.08.2011 um 23:06:25 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 22:55:16 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 22:37:00 Uhr
- LÖSUNG helmuthelmut2000 schreibt am 12.08.2011 um 01:32:37 Uhr
LÖSUNG 09.08.2011 um 18:56 Uhr
LÖSUNG 09.08.2011 um 19:13 Uhr
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
LÖSUNG 12.08.2011 um 01:32 Uhr
LÖSUNG 12.08.2011 um 21:18 Uhr
LÖSUNG 12.08.2011 um 21:52 Uhr
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)
?>
~Arano
LÖSUNG 12.08.2011 um 22:01 Uhr
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)]
Oder hänge an dein "CONVERT (varchar(8), getdate(),4)" noch ein "|| ' ' || CONVERT (varchar(8), getdate(),14)" an.
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)]
Oder hänge an dein "CONVERT (varchar(8), getdate(),4)" noch ein "|| ' ' || CONVERT (varchar(8), getdate(),14)" an.
Grüße
Biber
LÖSUNG 12.08.2011 um 22:37 Uhr
Hallo Biber,
mit
CONVERT (varchar(8), getdate(),4)
Wird mir das richtige Datum mit der Uhrzeit 00:00 geschrieben.
mit
CONVERT (varchar(8), getdate(),14)
Wird mir das Datum 01.01.1900 und die richtige Uhrzeit geschrieben.
Wie hänge ich das zusammen?
Muss ich 2 Datenbankfelder machen und diese dann beim ausgeben selectiren zusammen ausgeben?
oder gibts da ein (varchar(??), getdate(),???)
wo beides zusammen gespeichert wird?
Danke.
mit
CONVERT (varchar(8), getdate(),4)
Wird mir das richtige Datum mit der Uhrzeit 00:00 geschrieben.
mit
CONVERT (varchar(8), getdate(),14)
Wird mir das Datum 01.01.1900 und die richtige Uhrzeit geschrieben.
Wie hänge ich das zusammen?
Muss ich 2 Datenbankfelder machen und diese dann beim ausgeben selectiren zusammen ausgeben?
oder gibts da ein (varchar(??), getdate(),???)
wo beides zusammen gespeichert wird?
Danke.
LÖSUNG 12.08.2011 um 22:50 Uhr
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
LÖSUNG 12.08.2011 um 22:55 Uhr
LÖSUNG 12.08.2011 um 23:06 Uhr