SQL Server эквивалент MySQL NOW ()?

197

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

INSERT INTO timelog (datetime_filed) VALUES (NOW())
Эндрю Джонсон
источник

Ответы:

215

getdate()или getutcdate().

Даниэль Шаффер
источник
74
getdate() 

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

getutcdate()

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

Стивен А. Лоу
источник
24

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

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

Ян Варли
источник
5
Мне нравится, CURRENT_TIMESTAMPпотому что он работает в MySQL, SQL Server, Oracle ... Как вы сказали, это меньше всего беспокоит нас, но всегда помогает.
Альваро Гонсалес,