SQL Server odpowiednik NOW () MySQL?

197

Jestem facetem z MySQL, który pracuje nad projektem SQL Server i próbuje uzyskać pole daty i godziny, aby pokazać aktualny czas. W MySQL użyłbym NOW (), ale to nie akceptuje.

INSERT INTO timelog (datetime_filed) VALUES (NOW())
Andrew G. Johnson
źródło

Odpowiedzi:

215

getdate()lub getutcdate().

Daniel Schaffer
źródło
74
getdate() 

jest bezpośrednim odpowiednikiem, ale zawsze należy używać okresów danych UTC

getutcdate()

niezależnie od tego, czy aplikacja działa w różnych strefach czasowych, czy nie - w przeciwnym razie istnieje ryzyko zepsucia obliczeń matematycznych na przejściach wiosenno-jesiennych

Steven A. Lowe
źródło
24

Możesz także użyć CURRENT_TIMESTAMP, jeśli masz ochotę być bardziej zgodnym z ANSI (chociaż jeśli przenosisz kod między dostawcami baz danych, to będzie najmniejsze z twoich zmartwień). Jest dokładnie taki sam jak GetDate()pod okładkami (zobacz to pytanie, aby uzyskać więcej informacji na ten temat).

GetUTCDate()Jednak nie ma odpowiednika ANSI , który prawdopodobnie powinien być używany, jeśli aplikacja działa w więcej niż jednej strefie czasowej ...

Ian Varley
źródło
5
Podoba mi się, CURRENT_TIMESTAMPponieważ działa w MySQL, SQL Server, Oracle ... Jak powiedziałeś, to najmniejsze z naszych zmartwień, ale zawsze pomaga.
Álvaro González