2012-12-01 54 views
-1

我想在數據庫表中插入一個默認的Unix日期時間。但我無法插入這個。請幫我設置默認的Unix日期時間。在oracle中設置默認的unix datetime

+0

爲什麼你想存儲一個Unix日期而不是一個合適的數據庫DATE或TIMESTAMP數據類型 – eaolson

+0

有人告訴過, 。 – user1804985

+0

@ user1804985 - 將該字段聲明爲NUMBER並插入Unix時間戳不會做任何事情來讓您快速搜索數據。至少與存儲在適當的DATE列中的數據一樣容易搜索,特別是這就是所有的Oracles日期/時間函數可以處理。 –

回答

0

SYSDATE返回當前日期和時間,如同一個Oracle DATE(一個Oracle DATE總是包含第二個日期和時間組件)。

SYSTIMESTAMP將當前日期和時間作爲包含小數秒和時區的Oracle TIMESTAMP WITH TIME ZONE返回。

如果要插入一個NUMBER表示自1970年1月1日,(這我假設是你所說的「Unix的日期時間格式」的意思的秒數,這將是(SYSDATE - date '1970-01-01') * 60 * 60 * 24

+0

是的,你說得對。我想在插入數據時自動將這個Unix值插入到我的日期字段中。 – user1804985

+0

@ user1804985 - 如果該列被定義爲「DATE」,則不能插入數字值。如果要存儲數值,則該列必須聲明爲「NUMBER」。 –

+0

我聲明該列名稱的數據類型是數字。 – user1804985

0

您是否在查找SYSTIMESTAMP如下面?

INSERT INT TABLE(A, B, DATETIMECOL) 
    VALUES ('a', 'b', SYSTIMESTAMP); 

這會將服務器的當前時間戳插入到數據庫中。

+0

我需要像sql中的getdate()函數。 – user1804985

+0

你是什麼意思?使用查詢創建一個函數:'SELECT SYSTIMESTAMP FROM DUAL',這將返回當前時間戳。 –

+0

假設我想插入一行意味着日期字段以Unix日期時間格式自動插入。 – user1804985