【问题标题】:how to convert PDT/PST time to oracle standard format? [closed]如何将 PDT/PST 时间转换为 oracle 标准格式? [关闭]
【发布时间】:2014-05-26 09:36:12
【问题描述】:

我有一个要求。必须转换以下格式的日期

2007 年 12 月 7 日星期五 15:14:31 PDT

使用 sql/plsql 转为 oracle 标准格式(DD-MON-YY)

提前致谢。

【问题讨论】:

  • 该列的数据类型是什么?
  • 没有Oracle标准格式,日期也没有格式。恐怕不太清楚你在做什么或为什么?您是在应用程序中显示数据还是尝试将其存储在数据库中?
  • 在我的表中有一个 blob 文件,其中日期采用上述格式“2007 年 12 月 7 日星期五 15:14:31 PDT”我想将它存储到另一个表列数据类型是日期
  • 将字符串转换为日期很容易(见我的回答)。但是“blob 文件”这个短语与我有关。从二进制格式获取信息到测试中可能很棘手。您需要提供更多详细信息。如果您希望人们花费他们的时间来帮助您,您应该花费您的时间来正确地提出问题。

标签: sql plsql oracle11g


【解决方案1】:

我们可以使用 TO_TIMESTAMP_TZ 函数将字符串转换为时间戳数据类型。因为你有一个复杂的字符串,你必须确保你得到正确的格式掩码 (find out more)。

select to_timestamp_tz (
     'Fri Dec 7 15:14:31 PDT 2007'
     , 'Dy Mon DD HH24:MI:SS TZD YYYY' ) as ts
from dual
/

如果您想将其存储在日期列中,Oracle 将隐式处理转换,或者您可以选择显式......

cast (to_timestamp_tz (
     'Fri Dec 7 15:14:31 PDT 2007'
     , 'Dy Mon DD HH24:MI:SS TZD YYYY' ) 
     as date )  

如果这只是关于显示,请使用带有所需掩码“DD-MON-YYYY”的时间戳上的 TO_CHAR 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2012-04-17
    • 2022-01-09
    • 2016-11-21
    • 2018-07-28
    • 2020-05-03
    相关资源
    最近更新 更多