从红移中的时间戳字符串中提取时间戳

Extract timestamp from timestamp string in redshift

我正在处理两个 redshift table,每个都有不同格式的时间戳。

table 1 - start_date: 2013-07-26 07:30:17.0
table 2 - end_date: 20140517004819823Z

我的要求是两者采用相同的格式(例如 table 1,开始日期),这样我就可以使用 datediff 找到它们之间的间隔。

如何将 table 2 结束日期的格式设置为类似于 table 1。我试过了 cast(end_date 作为时间戳) 但它抛出 Invalid data code: 8001

编辑 1:

尝试使用 to_timestamp(end_date, 'YYYY-MM-DD HH24:MI:SS', false) 但它抛出 Invalid operation: value for "YYYY" in source string is out of range;

你会使用 TO_TIMESTAMP function - Amazon Redshift:

to_timestamp('20150425201043668Z', 'YYYYMMDDHH24MISSMSZ', true)

这翻译:

  • 日期:YYYYMMDD
  • 小时:HH24
  • 分钟:MI
  • 秒:SS
  • 毫秒:MS