插入日期和时间戳给出错误

时间:2016-11-25 06:08:03

标签: sql oracle insert

我想在Oracle表中插入Current_timestamp。而且,我尝试了to_timestamp(current_timestamp,'YYYY-MM-DD HH24:MI:SS:FF')之类的内容,但是它给出了错误

ORA-01830: date format picture ends before converting entire input string
01830. 00000 -  "date format picture ends before converting entire input string"
*Cause:    
*Action:

当我做'select current_timestamp,systimestamp from dual;'时,也非常感谢你的回答。然后它给了我

'CURRENT_TIMESTAMP                    
--------------------------------------
25-NOV-16 12.03.04.605812000 PM ASIA/C 
ALCUTTA ' whereas when i did -'select systimestamp from dual;' I got 'SYSTIMESTAMP                         
--------------------------------------
25-NOV-16 06.33.04.789680000 AM +00:00 

'

现在我要插入格式 25-NOV-16 06.33.04.789680000 以及许多其他游戏。 请帮助。

2 个答案:

答案 0 :(得分:1)

CURRENT_TIMESTAMP返回会话时区中的当前日期和时间,其值为数据类型TIMESTAMP WITH TIME ZONE

如果您需要TIMESTAMP值,您可以CAST(CURRENT_TIMESTAMP AS TIMESTAMP)或甚至更简单,请使用LOCALTIMESTAMP

根据您更新的问题,您似乎希望在时区或数据库服务器上插入时间 UTC ,而不是“亚洲/加尔各答”。

在这种情况下,使用CAST(SYSTIMESTAMP AS TIMESTAMP)或简单地SYSTIMESTAMP,Oracle将在内部投射。

答案 1 :(得分:0)

正如@Ed Gibbs所说,如果您的专栏是TIMESTAMP,那么只需使用:

insert into yourtable select current_timestamp from dual;

或者您的专栏是VARCHAR,然后想要更改格式:

insert into yourtable select to_char(current_timestamp, 'YYYY-MM-DD HH12:MI:SS:FF') from dual;