How to CONVERT
a date in format YYYY-MM-DD
into integer YYYYMMDD
in Presto/Hive?
I am trying to convert the below list into YYYYMMDD
integers
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)
)
I tried something like this but it doesn't work
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
Convert date to yyyy-mm-dd format with formula Select a blank cell next to your date, for instance. I1, and type this formula =TEXT(G1, "yyyy-mm-dd"), and press Enter key, then drag AutoFill handle over the cells needed this formula. Now all dates are converted to texts and shown as yyyy-mm-dd format.
Hive from_unixtime() is used to get Date and Timestamp in a default format yyyy-MM-dd HH:mm:ss from Unix epoch seconds. Specify the second argument in pattern format to return date and timestamp in a custom format.
You can convert timestamp to date with cast(col as date) or date(col) .
Also you can use date_format
function:
hive> select cast(date_format('2017-07-01','yyyyMMdd') as int);
OK
20170701
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With