Presto SQL - 将日期字符串转换为日期格式

新手上路,请多包涵

我在 presto 并且有一个格式化为 varchar 的日期,看起来像 -

 7/14/2015 8:22:39 AM

我查看了 presto 文档并尝试了各种方法(转换、date_format、使用 split_part 解析然后转换),但没有将其转换为可以与 date_diff 等函数一起使用的日期格式。

我试过了:

 cast(fieldname as timestamp)
date_format(fieldname, '%Y-%m-%d %T)

两者都给我这样的错误

'Value cannot be cast to timestamp: 3/31/2016 6:05:04 PM'

我该如何转换?

原文由 Moosa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
1 个回答

date_format 需要第一个参数为 timestamp 所以不是转换字符串的最佳方法。请改用 date_parse

此外,使用 %c 表示非零填充月份,使用 --- %e 表示该月的非零填充日,使用 %Y 表示四位数年份。

 SELECT date_parse('7/22/2016 6:05:04 PM', '%c/%e/%Y %r')

原文由 Jimson James 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进