【问题标题】:db date time with timezone in a specific format带有特定格式时区的 db 日期时间
【发布时间】:2016-02-04 16:49:07
【问题描述】:

我正在尝试使用以下格式的 sql 查询来获取数据库日期和时间 “2016-01-26T12:07:41-08:00”

从 dual 中选择 systimestamp 给了我类似的价值 2016-02-03 10:39:29.099545 -8:00

那么正确的查询应该是什么

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    我想这就是你所追求的:

    select to_char(systimestamp, 'yyyy-mm-dd"T"hh24:mi:ssTZH:TZM') time_stamp
    from   dual;
    
    TIME_STAMP                                         
    ---------------------------------------------------
    2016-02-04T12:20:33-05:00   
    

    【讨论】:

    • 注意TZR 表示“时区区域名称”。这可以是-08:00 之类的字符串,但也可以是US/Pacific。使用 TZH:TZM 始终获取 UTC 的小时:分钟偏移量。
    • @WernfriedDomscheit 啊,谢谢!我会更新我的答案以包括它;测试的时候有点仓促!
    【解决方案2】:

    我不是 100% 了解您想要的格式,因为您似乎两次给出相同的格式。 但是,如果您想更改 systimestamp 输出的格式,您可以执行以下操作: SELECT TO_CHAR(SYSTIMESTAMP, 'dd/mm/yy') FROM DUAL;

    结果: 2016 年 4 月 2 日

    【讨论】:

    • 抱歉解决了这个问题
    • 格式 dd/mm/yy 肯定与要求的不同:2016-01-26T12:07:41-08:00
    • 是的 - 很明显这只是一个例子,回复的重点是说明如何重新格式化日期
    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 2017-03-28
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 2014-12-15
    相关资源
    最近更新 更多