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())
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())
Odpowiedzi:
getdate()
lub getutcdate()
.
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
SYSDATETIME()
i SYSUTCDATETIME()
są odpowiednikami DateTime2 z
które zwracają DateTime .
DateTime2 jest teraz preferowaną metodą przechowywania daty i godziny w SQL Server 2008+. Zobacz następujący wpis StackOverflow .
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 ...
CURRENT_TIMESTAMP
ponieważ działa w MySQL, SQL Server, Oracle ... Jak powiedziałeś, to najmniejsze z naszych zmartwień, ale zawsze pomaga.