【发布时间】:2010-09-27 22:55:22
【问题描述】:
我是一名从事 SQL Server 项目的 MySQL 人员,试图获取一个日期时间字段来显示当前时间。在 MySQL 中我会使用 NOW() 但它不接受。
INSERT INTO timelog (datetime_filed) VALUES (NOW())
【问题讨论】:
标签: sql sql-server
我是一名从事 SQL Server 项目的 MySQL 人员,试图获取一个日期时间字段来显示当前时间。在 MySQL 中我会使用 NOW() 但它不接受。
INSERT INTO timelog (datetime_filed) VALUES (NOW())
【问题讨论】:
标签: sql sql-server
getdate() 或getutcdate()。
【讨论】:
getdate()
是直接等效的,但您应该始终使用 UTC 日期时间
getutcdate()
您的应用程序是否跨时区运行 - 否则您将面临在春季/秋季转换时搞砸日期数学的风险
【讨论】:
SYSDATETIME() 和 SYSUTCDATETIME()
是DateTime2 的等价物
返回一个DateTime。
DateTime2 现在是在 SQL Server 2008+ 中存储日期和时间的首选方法。请参阅以下StackOverflow Post。
【讨论】:
您也可以使用CURRENT_TIMESTAMP,如果您希望更符合 ANSI 标准(不过,如果您在数据库供应商之间移植代码,那将是您最不必担心的问题)。它与封面下的GetDate() 完全相同(有关更多信息,请参阅this question)。
但是,GetUTCDate() 没有 ANSI 等效项,如果您的应用在多个时区运行,您可能应该使用它...
【讨论】:
CURRENT_TIMESTAMP,因为它可以在 MySQL、SQL Server、Oracle 中使用...正如您所说,这是我们最不担心的问题,但它总是有帮助。