怎样在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,不要时间!的主要内容,如果未能解决你的问题,请参考以下文章

在oracle 10g sql plus中将日期和时间插入时间戳

informix/oracle rowid 问题

如何在oracle表中插入系统时间

oracle如何插入日期和时间?

如何将日期值插入表中

在 Oracle 中,我可以执行“将值插入或更新到表中”吗