如何在SQL中获取当前日期时间?

问题描述:

想要获取当前日期时间以插入lastModifiedTime列。我正在使用MySQL数据库。我的问题是:如何在SQL中获取当前日期时间?

  1. 是否有SQL中可用的函数?或

  2. 它是实现依赖,所以每个数据库都有它自己的功能呢?

  3. MySQL中可用的函数是什么?

+4

如果ANSI-SQL要求这些基本系统功能在不同平台上一致地命名,那不是很好吗?标准化(子字符串或substr)或(IsNull或NVL)。 – Bill 2009-08-05 14:35:52

完整回答:

1.是否有一个功能,可以在SQL?
是的,SQL 92规范,10月97日,页。 171,第6.16节指定该功能:

CURRENT_TIME  Time of day at moment of evaluation 
CURRENT_DATE  Date at moment of evaluation 
CURRENT_TIMESTAMP Date & Time at moment of evaluation 

二是实现取决于所以每个数据库都有自己的功能呢?
每个数据库都有自己的实现,但他们必须执行,如果他们符合SQL 92规范上述三种功能(而是取决于版规范)

3.什么是功能可用MySQL的?

NOW() returns 2009-08-05 15:13:00 
CURDATE() returns 2009-08-05 
CURTIME() returns 15:13:00 

(如SixFootTallRabbit说)

对于SQL Server使用GetDate()或current_timestamp。您可以使用Convert(dataType,value,format)格式化结果。用正确的数据库服务器标记您的问题。

我始终只使用NOW():

INSERT INTO table (lastModifiedTime) VALUES (NOW()) 

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_now

我希望我的日期时间,我希望它now()

对于MySQL,无论如何。

+1

这太可爱了......虽然没有与微软合作:“我想要我的约会,而我想要GetDate()!” – 2009-08-05 14:30:02

+0

当然可以。 “好吧,先生,你从现在开始就可以GetDate()!” – 2009-08-05 15:06:16

NOW()返回2009-08-05 15点13分00秒

CURDATE()返回2009-08-05

CURTIME()返回15点13分00秒

  1. GETDATE()或GETUTCDATE()现在被更丰富的SYSDATETIME,SYSUTCDATETIME和SYSDATETIMEOFFSET(在SQL 2008中)取代
  2. 是的,我不认为ANSI曾经声明过任何东西,所以每个制造商都有自己的。
  3. 这将是NOW()

希望这有助于...

罗布

SYSDATETIME() 2007-04-30 13:10:02.0474381 
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00 
SYSUTCDATETIME() 2007-04-30 20:10:02.0474381 
CURRENT_TIMESTAMP 2007-04-30 13:10:02.047 + 
GETDATE() 2007-04-30 13:10:02.047 
GETUTCDATE() 2007-04-30 20:10:02.047 

我猜NOW()不工作一段时间,并给出错误'现在' 是无法识别的内置函数名称。

希望它有帮助!谢谢。 https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql