0
我想通过使用alter session
命令设置的格式传递日期。这是我到目前为止所尝试的。不理解无效的月份错误。我正在使用10g。插入带时区的日期文字
数据库时区为UTC
SELECT dbtimezone FROM DUAL;
UTC
我设置会话时区和日期格式
alter session set time_zone = 'UTC';
alter session set NLS_TIMESTAMP_TZ_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF TZR';
alter session set NLS_DATE_FORMAT = 'YYYY-MM-DD';
我在插入值的表如下。单个记录插入
SQL代码:
Insert into books_outsource_plan(os_cell_id, os_date, os_value, os_snapshot, os_created)
values (1,'2013-03-08',3000,'2013-03-07 19:10:10 UTC','2013-03-08 19:15:54 UTC');
错误报告:
SQL Error: ORA-01843: not a valid month
尝试用RRRR取代YYYY,我在类似的问题中看到但没有区别。 – Todd 2013-03-08 19:59:49
尝试CASTING to_date然后插入,试试看... – 2013-03-08 20:01:35
如果向时间戳文字添加'to_timestamp_tz',插入会成功。不需要明显地混淆日期字面量。但是,当我查询表格时,时间戳与我插入的文字不匹配。特别是,'2013-03-07 19:10:10 UTC'被转换为'07 -MAR-13 02.10.10.0000000 PM' – Todd 2013-03-08 20:24:24