2009-08-05 99 views
13

想要獲取當前日期時間以插入lastModifiedTime列。我正在使用MySQL數據庫。我的問題是:如何在SQL中獲取當前日期時間?

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

  2. 它是實現依賴,所以每個數據庫都有它自己的功能呢?

  3. MySQL中可用的函數是什麼?

+4

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

回答

27

完整回答:

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說)

1

對於SQL Server使用GetDate()或current_timestamp。您可以使用Convert(dataType,value,format)格式化結果。用正確的數據庫服務器標記您的問題。

2

我希望我的日期時間,我希望它now()

對於MySQL,無論如何。

+1

這太可愛了......雖然沒有與微軟合作:「我想要我的約會,而我想要GetDate()!」 – 2009-08-05 14:30:02

+0

當然可以。 「好吧,先生,你從現在開始就可以GetDate()!」 – 2009-08-05 15:06:16

4

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

CURDATE()返回2009-08-05

CURTIME()返回15點13分00秒

0
  1. GETDATE()或GETUTCDATE()現在被更豐富的SYSDATETIME,SYSUTCDATETIME和SYSDATETIMEOFFSET(在SQL 2008中)取代
  2. 是的,我不認爲ANSI曾經聲明過任何東西,所以每個製造商都有自己的。
  3. 這將是NOW()

希望這有助於...

羅布

1
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

相關問題