Aktuelles Datum und Uhrzeit mit php in MSSQL DB schreiben

Mitglied: helmuthelmut2000

helmuthelmut2000 (Level 2) - Jetzt verbinden

09.08.2011 um 18:49 Uhr, 6686 Aufrufe, 13 Kommentare

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
Mitglied: Luckyguy
09.08.2011 um 18:56 Uhr
willst du die uhrzeit formatiert mitgeben oder nur im timestamp ich würde timestamp vorschlagen mit der standardfunktion php time() kannst es bestimmen.
Bitte warten ..
Mitglied: Xaero1982
09.08.2011 um 19:10 Uhr
Edit: Huch ist ja MSSQL, wie Arano sagte ... also siehe bei ihm :) face-smile
Bitte warten ..
Mitglied: Arano
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 :) face-smile


~Arano
Bitte warten ..
Mitglied: helmuthelmut2000
12.08.2011 um 01:32 Uhr
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
Bitte warten ..
Mitglied: helmuthelmut2000
12.08.2011 um 21:18 Uhr
Hallo,

Kannst du mir das etwas besser erklären.
Wie macht man das mit time() ?

Danke
Bitte warten ..
Mitglied: Arano
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
Bitte warten ..
Mitglied: Biber
12.08.2011 um 22:01 Uhr
Moin helmuthelmut2000,
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?
  • 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
Bitte warten ..
Mitglied: helmuthelmut2000
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.
Bitte warten ..
Mitglied: helmuthelmut2000
12.08.2011 um 22:49 Uhr
Hallo,

OK

jetzt hats geklappt.

Danke.
Bitte warten ..
Mitglied: Biber
12.08.2011 um 22:50 Uhr
Moin helmuthelmut2000,

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
Bitte warten ..
Mitglied: helmuthelmut2000
12.08.2011 um 22:55 Uhr
Mit

(varchar(20), getdate(),113)

sieht das ganz gut aus.
Das geht doch, oder würdest du das nicht nehmen?
Da hab ich Das Datum und die Richtige Uhrzeit.

Gruß
Helmut
Bitte warten ..
Mitglied: Biber
12.08.2011 um 23:06 Uhr
Moin Helmuthelmut2000,

wenn bei dir in diesem Format die im deutschen Sprachraum üblichen Punkte und Leerzeichen an den "richtigen" Stellen sind, dann passt es schon.
Wie erscheint denn eine Ausgabe in diesem Format hier, heute und jetzt?

Grüße
Biber
Bitte warten ..
Mitglied: helmuthelmut2000
13.08.2011 um 01:20 Uhr
Hallo biber,

Das schaut jetzt so aus:

13.08.2011 01:17:31
Bitte warten ..
Heiß diskutierte Inhalte
Switche und Hubs
Probleme im Netzwerk Switche teilweise nicht erreichbar
hukimanVor 1 TagFrageSwitche und Hubs30 Kommentare

Guten Morgen, seit Monaten haben wir hier immer wieder Probleme mit dem Netzwerk, das Problem konnte ich leider aber noch immer nicht finden. Es ...

Zusammenarbeit
Klimaschutz
NebellichtVor 18 StundenTippZusammenarbeit44 Kommentare

Hallo friends, (friends in Anlehnung an die vielen Fs in dem englischen von FFF: fridays for future. Übrigens am 19.03.2021 gibts wieder einen globalen ...

Batch & Shell
Tabellarische Ausgabe der Netzwerkschnittstellen
gelöst dysti99Vor 1 TagFrageBatch & Shell20 Kommentare

Mit - ip a - werden ja die Netzwerkschnittstellen angezeigt. Ich möchte mit ein Batchscript folgende Ausgabe erreichen: 1 eth0 192.168.1.1 AD:13:67:56:14:D1 2 eth1 ...

Notebook & Zubehör
Tipp für festgefressene Scharniere bei Lenovo V120 Notebook?
gelöst LochkartenstanzerVor 1 TagFrageNotebook & Zubehör20 Kommentare

Moin Kollegen, Ich habe hier ein Lenovo V120 mit einem laut Internet üblichen Problem von "festgefressenen" Scharnieren. Ich könnte jetzt aufwendig das Notebook zerlegen ...

Microsoft Office
Microsoft365 und Outlook verbinden
ratzekahl1Vor 21 StundenFrageMicrosoft Office29 Kommentare

Guten Morgen zusammen, ich habe einige Probleme / Fragen. Ich habe Office 365 auf den ersten Rechnern installiert. Admin angelegt, Benutzer usw. Da ich ...

Microsoft Office
Wechsel von Office - Exchange on premise zu Office 365 - Exchange Online
jann0rVor 1 TagAllgemeinMicrosoft Office14 Kommentare

Moin, ich weiß nicht so richtig, unter welche Überschrift man dieses Thema hier am besten packen kann, daher mal als allg. Beitrag / Erfahrungsbericht. ...

Netzwerkgrundlagen
Netzwerksaufbau bei nahezu auschließlichem Zugriff auf NAS bzw. Server
Ghent74Vor 1 TagFrageNetzwerkgrundlagen11 Kommentare

Hallo zusammen, in unserem kleinen Büro (6 Arbeitsplätze, Netzwerkdrucker, Netzwerkplotter, NAS) stellen immer mehr Softwarefirmen ihre Programme auf eine Art Datenbank um. Eine Art ...

Internet
Sichere Verbindung von zu Hause zu einem Firmenpc
haiflosseVor 1 TagFrageInternet6 Kommentare

Hallo! Ich suche eine Lösung mit der ich eine sichere Verbindung (ohne das ein Virus, Trojaner oder Ransom Virus den Computer bzw. Netzwerk zerstört) ...