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


getdate() или getutcdate().
Вы также можете использовать CURRENT_TIMESTAMP, если хотите быть более совместимыми с ANSI (хотя, если вы переносите код между поставщиками баз данных, это будет наименьшей из ваших проблем). Он точно такой же, как и GetDate() под крышками (подробнее см. этот вопрос).
Однако для GetUTCDate() нет эквивалента ANSI, который, вероятно, вам следует использовать, если ваше приложение работает более чем в одном часовом поясе ...
getdate()
является прямым эквивалентом, но вы всегда должны использовать дату в формате UTC
getutcdate()
работает ли ваше приложение в разных часовых поясах или нет - иначе вы рискуете испортить математику даты при переходах весна / осень
Есть ли места, где изменение часового пояса совпадает со сменой даты? Здесь, в PST, смена часового пояса всегда происходит за несколько часов до полуночи.
SYSDATETIME() и SYSUTCDATETIME()
являются эквивалентами DateTime2
которые возвращают DateTime.
DateTime2 теперь является предпочтительным методом для хранения даты и времени в SQL Server 2008+. См. Следующий Сообщение StackOverflow.
Мне нравится
CURRENT_TIMESTAMP, потому что он работает в MySQL, SQL Server, Oracle ... Как вы сказали, это меньше всего нас беспокоит, но всегда помогает.