Как преобразовать int (ггггммдд) в метку времени в SQL? - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Redshift и у меня есть поле в таблице типа int, представляющее дату дня.Например, int это 20180215 .Формат: ггггммдд.

Я хотел бы знать, как наиболее эффективно преобразовать это int в метку времени (гггг-мм-дд чч: мм: сс) с использованием SQL.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Использование to_timestamp().

select to_timestamp(20180215::text, 'YYYYMMDD')::timestamp

    to_timestamp     
---------------------
 2018-02-15 00:00:00
(1 row)

Функция возвращает timestamp with time zone.Результат зависит от текущей настройки часового пояса.Вы можете привести результат к timestamp, чтобы пропустить часть часового пояса.

0 голосов
/ 07 февраля 2019

Я думаю, что это лучшее

import datetime
date_format = "%Y%m%d"
timestamp = datetime.datetime.strptime("20180215", date_format).timestamp()
timestamp
# 1518620400.0

Вы делаете это лучше, делая функцию

def date_2_timestamp(date):
    from datetime.datetime import strptime
    return strptime(date, "%Y%m%d").timestamp()
...