Oracle SQL如何去除datetime类型字段的毫秒数与AM/PM标识
Oracle SQL去除datetime类型字段毫秒与AM/PM标识的解决方法
你之前的操作无效的原因是:TIMESTAMP 类型本身支持存储小数秒,你将格式化后的字符串再转回 TIMESTAMP 时,Oracle会自动补全毫秒位为0,客户端默认显示规则下就仍会展示毫秒和AM/PM标识。
根据你的使用场景可以选择两种方案:
- 仅需要查询结果符合显示要求,不需要保留日期时间类型属性
直接使用to_char格式化即可,无需做类型回转,执行语句如下:
输出结果为符合格式要求的字符串,没有毫秒与AM/PM标识。select to_char(created_dt, 'dd-mm-yy hh24:mi:ss') as created_dt from mydatabase; - 需要保留日期时间类型属性,同时去除毫秒
Oracle的DATE类型不存储秒以下的小数部分,你可以直接将字段强转为DATE类型,配合会话日期格式参数设置即可实现需求:- 先修改当前会话的默认日期显示格式,避免输出AM/PM标识:
alter session set nls_date_format = 'dd-mm-yy hh24:mi:ss';- 执行查询时强转字段类型:
select cast(created_dt as date) as created_dt from mydatabase;
内容的提问来源于stack exchange,提问作者BHW
相关产品推荐
相关产品推荐

