使用DBeaver和Oracle,select querys以错误的格式显示日期,其中总是在末尾包含.0,如2019-05-17 16:10:47.0。
要更新/插入表中的任何日期列,在DBeaver编辑器上,我尝试的日期模式无关紧要,抛出:ORA-01861:文字与格式字符串不匹配
SELECT sysdate FROM dual
-- returns date with .0: 2019-05-17 17:21:11.0
SELECT TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS') FROM dual
-- returns ok: 2019-05-17 17:21:11
在Oracle SQL Developer上运行。
我也尝试从NLS_PARAMETERS中删除SSXFF,但似乎不起作用:
SELECT * FROM v$nls_parameters
--NLS_DATE_FORMAT DD/MM/RR
--NLS_TIME_FORMAT HH24:MI:SSXFF
--NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
--NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
--NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
alter session set NLS_TIME_FORMAT = 'HH24:MI:SS'
alter session set NLS_TIMESTAMP_FORMAT = 'DD/MM/RR HH24:MI:SS'
alter session set NLS_TIME_TZ_FORMAT = 'HH24:MI:SS TZR'
alter session set NLS_TIMESTAMP_TZ_FORMAT = 'DD/MM/RR HH24:MI:SS TZR'
环境:Windows 10 Oracle Database 12 c 12.2.0.1.0 - 64位DBeaver 6.0.3驱动程序OJDBC 7
2条答案
按热度按时间nbewdwxp1#
确保在DBeaver首选项>数据格式>“禁用日期/时间格式”选项中未选中。
这允许在插入/更新操作中使用客户端格式。
n1bvdmb62#
在连接设置>驱动程序属性中,将oracle.jdbc.mapDateToTimestamp更改为FALSE。Connection settings