如何 CONVERT
格式的日期 YYYY-MM-DD
转换为整数 YYYYMMDD
在presto/hive?
我正在尝试将下面的列表转换为 YYYYMMDD
整数
WITH all_dates as (SELECT
CAST(date_column AS DATE) date_column
FROM
(VALUES
(SEQUENCE(FROM_ISO8601_DATE('2017-07-01'),
FROM_ISO8601_DATE('2017-11-15'),
INTERVAL '1' DAY)
)
) AS t1(date_array)
CROSS JOIN
UNNEST(date_array) AS t2(date_column)
)
我试过这样的方法,但没用
SELECT
CAST(
CAST(year(date_column) AS VARCHAR(4)) +
right('0' + CAST(month(date_column) AS VARCHAR(2)), 2) +
right('0' + CAST(day(date_column) AS VARCHAR(2)), 2)
AS DATETIME)
FROM all_dates
4条答案
按热度按时间vohkndzv1#
如果您只需要将日期yyyy-mm-dd转换为整数yyyymmdd,为什么不先删除所有出现的
"-"
在将结果转换为int之前,从日期的字符串表示中使用以下内容?sg3maiej2#
你确定要使用
YYYYMMDD
? hive遵循java约定的日期格式和https://docs.oracle.com/javase/7/docs/api/java/text/simpledateformat.html 您可以看到yyyy代表周年,这意味着您可能会在年底日期遇到麻烦。2019年可能出现在2020年。使用
yyyyMMdd
相反。@leftjoin可能有正确的响应。
x8goxv8g3#
你也可以用
date_format
功能:tyg4sfes4#
简单
REPLACE
带空字符串和CAST
把它变成INT
.请尝试以下操作: