Oracle SQL Developer插入带时分的DATE类型数据后查询不显示时分求助
问题原因定位
首先明确:你输入的时分值已经完整存储到RENTING表的对应字段中,当前查询结果不展示时分是Oracle SQL Developer客户端的显示规则导致的,不存在数据写入失败、内容丢失的问题。
- Oracle的
DATE类型原生支持存储年、月、日、时、分、秒共6个维度的时间信息,不会单独丢弃时分内容。 - 你编写的插入语句逻辑是正确的:用
TO_DATE匹配格式串的写法没有问题,格式串前后的多余空格Oracle在解析时会自动忽略,不会影响时间值的正常写入。 - 看不到时分的核心原因:SQL Developer客户端默认的日期显示模板仅匹配到「日」级别(比如默认模板为
DD/MM/RR),没有配置时分部分的渲染规则,因此查询输出时会自动隐藏时分内容。
可落地的解决方法
可根据自己的使用场景选择对应方案:
- 临时生效的会话级配置
在执行SELECT查询前,先执行以下语句修改当前会话的日期显示格式:
设置完成后再次查询RENTING表,输出结果就会完整展示存储的时分值。ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI'; - 全局客户端固定格式配置
如果不想每次查询都手动执行格式设置,可以修改SQL Developer的默认显示规则:
依次打开菜单:工具 → 首选项 → 数据库 → NLS,将「日期格式」的参数值修改为DD/MM/YYYY HH24:MI,保存配置后重启客户端,后续所有DATE类型字段的查询结果都会默认带时分展示。 - 单条查询自定义格式化
如果不需要修改全局配置,可以在写查询语句时手动用TO_CHAR函数将日期值按指定格式转为字符串输出,示例语句:SELECT cAFM, vPlateNumber, TO_CHAR(OutDate, 'DD/MM/YYYY HH24:MI') AS OutDate, TO_CHAR(InDate, 'DD/MM/YYYY HH24:MI') AS InDate FROM RENTING;
内容的提问来源于stack exchange,提问作者user15605716
相关产品推荐
相关产品推荐

