SQL Server-Äquivalent zu MySQLs NOW ()?


196

Ich bin ein MySQL-Typ, der an einem SQL Server-Projekt arbeitet und versucht, ein Datum / Uhrzeit-Feld zu erhalten, um die aktuelle Uhrzeit anzuzeigen. In MySQL würde ich NOW () verwenden, aber das wird nicht akzeptiert.

INSERT INTO timelog (datetime_filed) VALUES (NOW())

Antworten:



74
getdate() 

ist das direkte Äquivalent, aber Sie sollten immer UTC-Datenzeiten verwenden

getutcdate()

Unabhängig davon, ob Ihre App über Zeitzonen hinweg funktioniert oder nicht - andernfalls besteht die Gefahr, dass Sie die Datumsberechnung bei den Frühjahr / Herbst-Übergängen vermasseln



24

Sie können auch verwenden CURRENT_TIMESTAMP, wenn Sie ANSI-kompatibler sein möchten (wenn Sie jedoch Code zwischen Datenbankanbietern portieren, ist dies die geringste Sorge). Es ist genau das gleiche wie GetDate()unter der Decke ( mehr dazu in dieser Frage ).

Es gibt jedoch kein ANSI-Äquivalent für das GetUTCDate(), das Sie wahrscheinlich verwenden sollten, wenn Ihre App in mehr als einer Zeitzone ausgeführt wird ...


5
Ich mag es, CURRENT_TIMESTAMPweil es in MySQL, SQL Server, Oracle funktioniert ... Wie Sie sagten, ist es die geringste Sorge, aber es hilft immer.
Álvaro González
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.