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

如何在Oracle 19c中使用to_timestamp_tz将带时区字符串转为带时区时间戳?

用Oracle 19c的TO_TIMESTAMP_TZ转换指定带时区字符串

直接使用TO_TIMESTAMP_TZ函数并匹配对应的格式掩码即可完成转换,下面是具体实现:

基础实现(识别时区缩写EDT)

执行以下SQL语句:

SELECT TO_TIMESTAMP_TZ('09/23/2022 12:44 PM EDT', 'MM/DD/YYYY HH:MI AM TZR') AS converted_tstz
FROM DUAL;

格式掩码说明

  • MM:匹配两位数的月份(09)
  • DD:匹配两位数的日期(23)
  • YYYY:匹配四位数的年份(2022)
  • HH:匹配12小时制的小时数(12)
  • MI:匹配两位数的分钟(44)
  • AM:匹配上午/下午标记(自动兼容PM)
  • TZR:识别时区区域缩写(如EDT)

备选方案(使用UTC偏移量)

如果数据库时区文件未包含EDT的映射(可通过SELECT version FROM V$TIMEZONE_FILE;查看时区文件版本),可以直接用UTC偏移量替代时区缩写:

SELECT TO_TIMESTAMP_TZ('09/23/2022 12:44 PM -04:00', 'MM/DD/YYYY HH:MI AM TZH:TZM') AS converted_tstz
FROM DUAL;

这里TZH:TZM用于匹配UTC偏移格式(EDT对应UTC-4)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:10:27