【问题标题】:Function to convert char(255) non standard dates into timestamps将 char(255) 非标准日期转换为时间戳的函数
【发布时间】:2021-05-05 08:43:16
【问题描述】:

我的数据库有一列日期字符串,格式为YYYY-MM-DDThh:mm:ss.3nZ 我想将它们转换为 TIMESTAMP 以便我可以应用 BETWEEN 函数来识别落在给定时间窗口内的行(这是练习的最终目标)。 不幸的是,我不能仅仅改变专栏的性质。 实现这一目标的最佳方法是什么? 谢谢

【问题讨论】:

  • 三位数秒,真的sss
  • 是的,我知道!不幸的是,数据库不在我的控制范围内。我已经向所有者提交了一些“错误”以“修复”所有这些
  • 第二个值是否 > 59?向我们展示一些示例表数据和预期结果。你对1999-12-31T23.59.321Z有什么期望
  • 那么示例时间是什么样的?它们是否都有前导零或尾随零来填充三位数字?
  • 所以在你的编辑之后,它有两位数的秒数,然后是三位数的毫秒数

标签: sql sql-function postgresql-10


【解决方案1】:

试试这个:

SELECT
    to_timestamp('2021-01-28T10:26:32.359Z', 'YYYY-MM-DD"T"HH:MI:SS.FF3"Z"') t
FROM
    dual;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    相关资源
    最近更新 更多