如何为TIMESTAMP类型添加小数部分?实测操作未生效
如何为TIMESTAMP类型添加小数部分?
你遇到的问题是因为直接创建TIMESTAMP类型时,默认的小数秒精度为0,导致插入带小数的时间值时,小数部分被截断,最终查询结果显示为.000000。
解决方法很简单,只需在创建表时指定TIMESTAMP的小数秒精度:
- 创建带精度的TIMESTAMP字段
CREATE TABLE t(A TIMESTAMP(6)); -- 6表示保留6位小数秒,最大支持9位
- 执行原插入语句
INSERT INTO t(A) VALUES (DATE '2022-04-01' + INTERVAL '18:02:42.123456' HOUR TO SECOND);
- 查询时可以用
TO_CHAR指定显示格式,确保小数秒部分被展示
SELECT TO_CHAR(A, 'YYYY-MM-DD HH24:MI:SS.FF6') FROM t;
执行后就能得到包含完整小数秒的结果:2022-04-01 18:02:42.123456。
如果不指定精度,Oracle的TIMESTAMP默认仅存储到秒级,小数部分会被丢弃,所以必须显式声明精度才能保留小数秒信息。
内容的提问来源于stack exchange,提问作者Beefstu
相关产品推荐
相关产品推荐

