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.