Я хлопець MySQL, який працює над проектом SQL Server, намагаючись отримати поле для дати, щоб показати поточний час. У MySQL я б використовував NOW (), але це не приймає.
INSERT INTO timelog (datetime_filed) VALUES (NOW())
Я хлопець MySQL, який працює над проектом SQL Server, намагаючись отримати поле для дати, щоб показати поточний час. У MySQL я б використовував NOW (), але це не приймає.
INSERT INTO timelog (datetime_filed) VALUES (NOW())
Відповіді:
getdate()
або getutcdate()
.
getdate()
є прямим еквівалентом, але завжди слід використовувати UTC datetimes
getutcdate()
незалежно від того, чи працює ваш додаток через часові пояси чи ні - інакше ви ризикуєте накрутити математику дати на переходах весна / осінь.
SYSDATETIME()
і SYSUTCDATETIME()
є еквівалентами DateTime2
які повертають DateTime .
DateTime2 тепер є кращим методом зберігання дати та часу в SQL Server 2008+. Дивіться наступну публікацію StackOverflow .
Ви також можете використовувати CURRENT_TIMESTAMP
, якщо вам здається, що ви сумісніші з ANSI (хоча якщо ви переносите код між постачальниками баз даних, це буде мінімум ваших турбот). Це точно так само, як GetDate()
під обкладинками (див. Це питання докладніше про це).
Однак немає ANSI-еквівалента GetUTCDate()
, але це, мабуть, те, що ви повинні використовувати, якщо ваш додаток працює в більш ніж одному часовому поясі ...
CURRENT_TIMESTAMP
бо він працює в MySQL, SQL Server, Oracle ... Як ви вже говорили, це найменше з наших турбот, але це завжди допомагає.