我正在使用Redshift,并且在表中有一个字段,类型为int,代表一天的日期。例如,int是 20180215 。格式为yyyymmdd。
我想知道使用SQL将int转换为时间戳(yyyy-mm-dd hh:mm:ss)的最有效方法是什么。
答案 0 :(得分:2)
select to_timestamp(20180215::text, 'YYYYMMDD')::timestamp
to_timestamp
---------------------
2018-02-15 00:00:00
(1 row)
该函数返回timestamp with time zone
。结果取决于当前时区设置。您可以将结果强制转换为timestamp
,以跳过时区部分。
答案 1 :(得分:0)
我认为这是最好的
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()