反正是有只插入时间(无日期)进入型 '日期'插入时间到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