SQL Server эквивалент MySQL NOW ()? - PullRequest
177 голосов
/ 22 декабря 2008

Я парень из MySQL, работаю над проектом SQL Server, пытаюсь получить поле даты и времени для отображения текущего времени. В MySQL я бы использовал NOW (), но он этого не принимает.

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

Ответы [ 4 ]

189 голосов
/ 22 декабря 2008

getdate() или getutcdate().

70 голосов
/ 22 декабря 2008
getdate() 

является прямым эквивалентом, , но вы всегда должны использовать дату и время UTC

getutcdate()

независимо от того, работает ваше приложение в часовых поясах или нет - в противном случае вы рискуете испортить математические вычисления даты при переходах весна / осень

28 голосов
/ 01 августа 2013

SYSDATETIME() и SYSUTCDATETIME()

являются DateTime2 эквивалентами

GetDate() и GetUTCDate()

, которые возвращают DateTime .

DateTime2 теперь является предпочтительным способом хранения даты и времени в SQL Server 2008+. См. Сообщение StackOverflow .

21 голосов
/ 22 декабря 2008

Вы также можете использовать CURRENT_TIMESTAMP, если вам хочется быть более совместимым с ANSI (хотя, если вы портируете код между поставщиками баз данных, это будет наименьшим количеством ваших забот). Это точно так же, как GetDate() под обложками (подробнее см. в этом вопросе ).

Однако нет эквивалента ANSI для GetUTCDate(), который, вероятно, следует использовать, если ваше приложение работает в нескольких часовых поясах ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...