【问题标题】:Date format with UTCUTC 日期格式
【发布时间】:2020-10-08 06:38:15
【问题描述】:

我必须从表格的日期列中选择值 2019-03-25,但格式如下:

2019-03-25T00:00:00.000+02:00

我能拿到吗?

甲骨文 10g

谢谢!

【问题讨论】:

标签: sql oracle date plsql oracle10g


【解决方案1】:

date 数据类型不存储毫秒和时区信息,因此我理解您的问题,即如何将date 格式化为目标格式,毫秒和时区具有固定值。

如果是这样,您可以像这样使用to_char()

to_char(mycol, 'yyyy-mm-dd"T"hh24:mi:ss".000+2:00"')

【讨论】:

    【解决方案2】:

    您可以将CAST 您的DATE 转换为TIMESTAMP,然后使用FROM_TZ 设置时区,然后使用TO_CHAR 将其格式化为您的要求:

    SELECT TO_CHAR(
             FROM_TZ( CAST( your_date AS TIMESTAMP ), '+02:00' ),
            'YYYY-MM-DD"T"HH24:MI:SS.FF3TZH:TZM'
           ) AS formatted_date
    FROM   your_table;
    

    其中,对于您的示例数据:

    CREATE TABLE your_table ( your_date ) AS
    SELECT DATE '2019-03-25' FROM DUAL
    

    输出:

    | FORMATTED_DATE | | :---------------------------- | | 2019-03-25T00:00:00.000+02:00 |

    db小提琴here

    【讨论】:

      【解决方案3】:

      我们不能在数据库中存储时区信息,所以我们可以简单地使用以下格式,

      select to_char(sysdate,'YYYY-MM-DD')||'T'||to_char(sysdate,'HH24:MI:SS') from dual
      

      【讨论】:

        猜你喜欢
        • 2021-06-26
        • 1970-01-01
        • 2019-07-27
        • 2023-03-23
        • 1970-01-01
        • 2021-05-29
        • 2011-04-12
        • 2023-04-06
        • 1970-01-01
        相关资源
        最近更新 更多