我是一个MySQL的人,在一个SQL Server项目上工作,试图获得一个datetime字段来显示当前时间。在MySQL中,我会使用NOW(),但它不接受。
INSERT INTO timelog (datetime_filed) VALUES (NOW())
我是一个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