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())
Andrew G. Johnson
quelle

Antworten:

214

getdate()oder getutcdate().

Daniel Schaffer
quelle
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

Steven A. Lowe
quelle
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 ...

Ian Varley
quelle
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