【问题标题】:Convert Date part of a timestamp value from YYYY/MM/DD to DD/MM/YYYY将时间戳值的日期部分从 YYYY/MM/DD 转换为 DD/MM/YYYY
【发布时间】:2014-06-11 08:02:23
【问题描述】:

我有几个这样的时间戳值:

2014/02/13 07:45:30 -0800

我想把它们改成

13/02/2014 07:45:30 -0800

我如何做到这一点?

【问题讨论】:

  • stackoverflow 用于帮助处理损坏的代码。你试过什么?祝你好运。
  • 您有实际的时间戳,或者看起来像时间戳的字符串?实际时间戳没有任何固有格式;当您将它们转换为字符串进行显示时,您可以选择如何格式化它们。
  • 如上,猜测你有一个字符串,你想用格式掩码应用 to_timestamp。然后,您可以使用所需的任何格式掩码对其进行 to_char。
  • 附带说明,如果您正在将时间戳存储为字符串(并且您不能更改为使用实际的时间戳类型)不要 将数据库中的表示更改为您想要的格式。你的不能很好地排序。通常,数据库从不进行格式化 - 这是显示层的问题,在某些情况下,数据库可能根本没有相关信息。

标签: sql database oracle timestamp datetime-format


【解决方案1】:

你会想要使用这样的命令

TO_CHAR(date_value, 'DD/MM/YYYY hh24:mi:ss')

这会将日期转换为您要查找的格式,如果没有,那么您应该能够使用该命令将其更改为正确的格式。

这确实假设该列是日期格式。

【讨论】:

  • 好吧,他会错过 GMT 偏移量,你能把它加进去吗?也可能是 24 小时制。
  • 缺失的Offset可以这样实现——TO_CHAR(timestampWithTimezone value, 'DD/MM/YYYY hh24:mi:ss TZHTZM')
【解决方案2】:

试试Thiz:

select to_char(to_date(substr('2014/02/13 07:45:30 -0800', 1, 19),'YYYY/MM/DD hh24:mi:ss'),'DD/MM/YYYY hh24:mi:ss') from dual;

【讨论】:

    猜你喜欢
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2023-03-26
    相关资源
    最近更新 更多