我是一个MySQL的人,在一个SQL Server项目上工作,试图获得一个datetime字段来显示当前时间。在MySQL中,我会使用NOW(),但它不接受。

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

当前回答

Getdate()或getutcdate()。

其他回答

你也可以使用CURRENT_TIMESTAMP,如果你想更符合ANSI(尽管如果你在数据库供应商之间移植代码,这将是你最不担心的)。它在本质上与GetDate()完全相同(有关更多信息,请参阅这个问题)。

没有ANSI等效的GetUTCDate(),然而,如果你的应用程序在多个时区运行,这可能是你应该使用的一个…

Getdate()或getutcdate()。

getdate() 

是直接等价的,但您应该始终使用UTC日期时间

getutcdate()

无论你的应用程序是否跨时区运行——否则你会有在春秋转换时搞砸日期数学的风险

SYSDATETIME()和SYSUTCDATETIME()

是DateTime2的等价物

GetDate()和GetUTCDate()

返回一个DateTime。

DateTime2现在是SQL Server 2008+中存储日期和时间的首选方法。请参见下面的StackOverflow Post。

以下是可以在SQL Server中使用的函数,而不是NOW()

1. SYSDATETIME () 2. 获取当前日期() 3.GETUTCDATE () 4. CURRENT_TIMESTAMP

这些函数给出几乎准确的日期和时间,而SYSDATETIME给出以毫秒为单位的更精确的时间。

查询: 选择SYSDATETIME ()

输出: 2022-12-21 19:38:49.4181976

查询: 选择getdate () | gettcdate () | current_timestamp

输出: 2022-12-21 19:38:49.413