反正是有隻插入時間(無日期)進入型 '日期'插入時間到Oracle SQL,DATE域
的SQL領域我試圖插入:
13:00
和
01:00
和
13:00pm
和
01:00pm
但不斷收到錯誤:
Not A Valid Month
反正是有隻插入時間(無日期)進入型 '日期'插入時間到Oracle SQL,DATE域
的SQL領域我試圖插入:
13:00
和
01:00
和
13:00pm
和
01:00pm
但不斷收到錯誤:
Not A Valid Month
問題是字面。對於日期/時間值,Oracle需要格式爲ddMMMyyyy的值。 (或者,您可以使用表達式DATE '2001-01-01
,文字值解釋爲here。)沒有日期時,似乎沒有默認格式。
換句話說,你可以得到與cast('1/1/2001' as date)
相同的錯誤。
相反,使用to_date()
功能:
select to_date('10:00', 'hh:mi')
from dual
這爲您提供了格式更大的靈活性。
另外,正如Ben在評論中指出的那樣,這會給你指定的時間。
這將在表中插入當前日期,因此您必須始終記住將其刪除。最好將它存儲在INTERVAL DAY TO SECOND或自午夜以來的秒數中。 – Ben 2013-02-23 21:30:21
@Ben。 。 。那是對的。感謝您進一步澄清。我只是在解決錯誤發生的原因。 – 2013-02-23 21:32:32
使用EXTRACT和時間僅一個SYSDATE和一些日期部分的示例...:
SELECT hh||':'||mi||':'||ss time_only_portion
FROM
(
Select
EXTRACT(hour From Cast(SYSDATE as timestamp)) hh,
EXTRACT(minute From Cast(SYSDATE as timestamp)) mi,
EXTRACT(second From Cast(SYSDATE as timestamp)) ss
From dual
)
/
SELECT EXTRACT(HOUR From t_stamp) hh
FROM
(
SELECT CAST(to_date('21/02/2012 06:10:00 am', 'dd/mm/yyyy hh:mi:ss am') AS TIMESTAMP) t_stamp
FROM dual
)
/
應該怎樣做呢?不等 - 爲什麼? – 2013-02-23 20:59:48
線索在數據類型的名稱...它是_date _...日期有一天,一個月和一年... – Ben 2013-02-23 21:00:12
我在搜索引擎中使用了「在Oracle中存儲時間」,發現一些文章在這。你可以試試。我還在Oracle文檔中找到了間隔數據類型。這可能會滿足你的需求。 – 2013-02-23 21:09:10