You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Oracle SQL Developer时间添加问题:预约表时间字段显示异常求助

解决Oracle TIMESTAMP类型仅显示时间部分的问题

你遇到的是Oracle中TIMESTAMP类型默认显示格式带冗余日期的常见问题,这里有两种实用的解决思路:

1. 查询时格式化输出(推荐,灵活可控)

在查询语句里用TO_CHAR()函数指定你需要的时间格式,就能精准提取出HH24:MI格式的时间:

SELECT appointID, appoint_date, TO_CHAR(appoint_time, 'HH24:MI') AS appoint_time, appoint_type
FROM Appointment;

这种方法的优势是不会影响其他查询,只针对当前需求的字段做格式化,适合临时查询或者特定业务场景。

2. 修改会话级的TIMESTAMP显示格式

如果你希望当前数据库会话里,所有TIMESTAMP类型的查询都默认只显示时间,可以执行以下语句修改会话参数:

ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'HH24:MI';

执行后再直接查询appoint_time字段,就会显示10:00这样的纯时间格式了。不过要注意,这个设置只对当前会话有效,断开重连或者其他会话查询时,还是会回到默认的日期+时间格式。

补充说明

你插入数据时用TO_TIMESTAMP('10:00','HH24:MI'),Oracle会自动为TIMESTAMP字段补充默认日期(也就是你看到的01/APR/18),这部分日期是存在数据库里的,我们只是通过格式化让它不显示出来而已。

内容的提问来源于stack exchange,提问作者user24529

火山引擎 最新活动