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


197

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

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

Ответы:



74
getdate() 

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

getutcdate()

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



24

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

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


5
Мне нравится, CURRENT_TIMESTAMPпотому что он работает в MySQL, SQL Server, Oracle ... Как вы сказали, это меньше всего беспокоит нас, но всегда помогает.
Альваро Гонсалес,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.