怎样在ORACLE的表中插入系统日期?比如说2008-06-02,不要时间!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在ORACLE的表中插入系统日期?比如说2008-06-02,不要时间!相关的知识,希望对你有一定的参考价值。
我知道sysdate是显示系统时间,但是我不想要时间,只想要日期。 比如说2008-06-02。 我这么写可以: select to_char(sysdate,'yyyy-mm-dd') from dual; 显示的是2008-06-02,没有时间。 但是我想要的是插入数据库中的表中,也就是说在INSERT中实现。 这段语句: insert into table_income values (22,1001,111,to_char(sysdate,'yyyy-mm-dd'),to_char(sysdate,'yyyy-mm-dd')); 再ORACLE中运行就不行,有错误,把to_char换成to_date也不成! 哪位高手来帮帮我!谢谢了
参考技术A 据楼主所说,估计你保存日期
的字段类型应该是date类型。
你可以写成:
insert
into
table_income
values
(22,1001,111,
to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')
to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd');
就不会报错了!
在oracle 10g sql plus中将日期和时间插入时间戳
【中文标题】在oracle 10g sql plus中将日期和时间插入时间戳【英文标题】:Insert date and time into timestamp in oracle 10g sql plus 【发布时间】:2016-11-09 04:18:40 【问题描述】:我的表插入语句出错
属性E_STIME AMD E_FTIME
是事件的开始日期、开始时间和结束日期、结束时间。两者的数据类型都是TIMESTAMP (6)
。
我正在尝试将数据插入到已经在 oracle 10g 上的 sql plus 中创建的表中,但出现错误
ORA-01830: 日期格式图片在转换整个输入字符串之前结束
INSERT INTO EVENT (E_ID, E_NAME, E_STIME, E_FTIME, E_COST, ET_ET_ID, V_V_ID, C_C_ID)
VALUES ('E000002', 'RAVISINGH PARTY', TO_TIMESTAMP('2017-01-11 13:00:00.00',
'YYYY-MM-DD HH24:MI:SS'), TO_TIMESTAMP('2017-01-11 18:00:00.00',
'YYYY-MM-DD HH24:MI:SS'),'4897.00','ET002','V0002','C0002');
它最初给出了一个错误 -
ORA-01843: 月份无效
在插入中添加TO_TIMESTAMP
位后,我得到了ORA-01830
。
我做错了什么?
【问题讨论】:
您包含的格式掩码仅包含秒位以下的信息,但您在时间戳中包含了小数秒数据。所以你应该使用@JSapkota 建议的掩码 【参考方案1】:使用以下日期格式转换为时间戳。
TO_TIMESTAMP('2017-01-11 18:00:00.00', 'YYYY-MM-DD HH24:MI:SS.FF')
TO_TIMESTAMP
【讨论】:
这是另一个有用的答案以上是关于怎样在ORACLE的表中插入系统日期?比如说2008-06-02,不要时间!的主要内容,如果未能解决你的问题,请参考以下文章