Presto/SQL - 将字符串时间戳转换为日期会引发错误
Presto/SQL - Converting string timestamp to date throws error
注意:我是 运行 我在 Qubole 的 presto 和 sql 命令引擎中的查询。
我正在尝试将我的字符串时间戳转换为日期,但 none 个选项正在运行。
我的字符串时间戳看起来像 2017-03-29 10:32:28.0
我想让它像 2017-03-29
我已尝试通过以下查询将此 字符串 时间戳转换为检索日期
1. select cast(created as date) from table1
Value cannot be cast to date: 2017-05-26 17:23:58.0
2. select cast(from_iso8601_timestamp(created) as date) from table1
Invalid format: "2014-12-19 06:06:36.0" is malformed at " 06:06:36.0"
3. select date(created) from table1
Value cannot be cast to date: 2012-10-24 13:50:00.0
如何将此时间戳转换为 presto/sql 中的日期?
就 the documentation 中的解释而言,prestoDB 似乎期望时间戳格式为 '2001-08-22 03:04:05.321'
,日期格式为 '2001-08-22'
。
一种解决方案是使用 a string function 在转换之前提取字符串的相关部分。我们知道日期部分位于字符串中第一个space之前,所以.
如果您需要日期部分作为 字符串数据类型:
split_part(created, ' ', 1)
如果您需要日期部分作为 日期数据类型:
cast(split_part(created, ' ', 1) as date)
您可以尝试使用以下解决方案之一:
SELECT
'2017-03-29 10:32:28.0' AS input_string,
DATE(date_parse('2017-03-29 10:32:28.0', '%Y-%m%-%d %H:%i:%s.%f')) AS solution_1,
DATE(try_cast('2017-03-29 10:32:28.0' as timestamp)) AS solution_2
注意:我是 运行 我在 Qubole 的 presto 和 sql 命令引擎中的查询。
我正在尝试将我的字符串时间戳转换为日期,但 none 个选项正在运行。
我的字符串时间戳看起来像 2017-03-29 10:32:28.0
我想让它像 2017-03-29
我已尝试通过以下查询将此 字符串 时间戳转换为检索日期
1. select cast(created as date) from table1
Value cannot be cast to date: 2017-05-26 17:23:58.0
2. select cast(from_iso8601_timestamp(created) as date) from table1
Invalid format: "2014-12-19 06:06:36.0" is malformed at " 06:06:36.0"
3. select date(created) from table1
Value cannot be cast to date: 2012-10-24 13:50:00.0
如何将此时间戳转换为 presto/sql 中的日期?
就 the documentation 中的解释而言,prestoDB 似乎期望时间戳格式为 '2001-08-22 03:04:05.321'
,日期格式为 '2001-08-22'
。
一种解决方案是使用 a string function 在转换之前提取字符串的相关部分。我们知道日期部分位于字符串中第一个space之前,所以.
如果您需要日期部分作为 字符串数据类型:
split_part(created, ' ', 1)
如果您需要日期部分作为 日期数据类型:
cast(split_part(created, ' ', 1) as date)
您可以尝试使用以下解决方案之一:
SELECT
'2017-03-29 10:32:28.0' AS input_string,
DATE(date_parse('2017-03-29 10:32:28.0', '%Y-%m%-%d %H:%i:%s.%f')) AS solution_1,
DATE(try_cast('2017-03-29 10:32:28.0' as timestamp)) AS solution_2