You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL如何去除datetime类型字段的毫秒数与AM/PM标识

Oracle SQL去除datetime类型字段毫秒与AM/PM标识的解决方法

你之前的操作无效的原因是:TIMESTAMP 类型本身支持存储小数秒,你将格式化后的字符串再转回 TIMESTAMP 时,Oracle会自动补全毫秒位为0,客户端默认显示规则下就仍会展示毫秒和AM/PM标识。
根据你的使用场景可以选择两种方案:

  • 仅需要查询结果符合显示要求,不需要保留日期时间类型属性
    直接使用to_char格式化即可,无需做类型回转,执行语句如下:
    select to_char(created_dt, 'dd-mm-yy hh24:mi:ss') as created_dt from mydatabase;
    
    输出结果为符合格式要求的字符串,没有毫秒与AM/PM标识。
  • 需要保留日期时间类型属性,同时去除毫秒
    Oracle的DATE类型不存储秒以下的小数部分,你可以直接将字段强转为DATE类型,配合会话日期格式参数设置即可实现需求:
    1. 先修改当前会话的默认日期显示格式,避免输出AM/PM标识:
    alter session set nls_date_format = 'dd-mm-yy hh24:mi:ss';
    
    1. 执行查询时强转字段类型:
    select cast(created_dt as date) as created_dt from mydatabase;
    

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:24:03