【发布时间】:2019-07-01 01:19:09
【问题描述】:
我正在使用 Redshift,并且在表格中有一个字段作为 int 类型表示一天的日期。例如 int 是 20180215 。格式为 yyyymmdd。
我想知道使用 SQL 将此 int 转换为时间戳 (yyyy-mm-dd hh:mm:ss) 的最有效方法是什么。
【问题讨论】:
标签: sql postgresql hive amazon-redshift
我正在使用 Redshift,并且在表格中有一个字段作为 int 类型表示一天的日期。例如 int 是 20180215 。格式为 yyyymmdd。
我想知道使用 SQL 将此 int 转换为时间戳 (yyyy-mm-dd hh:mm:ss) 的最有效方法是什么。
【问题讨论】:
标签: sql postgresql hive amazon-redshift
select to_timestamp(20180215::text, 'YYYYMMDD')::timestamp
to_timestamp
---------------------
2018-02-15 00:00:00
(1 row)
函数返回timestamp with time zone。结果取决于当前时区设置。您可以将结果转换为 timestamp 以跳过时区部分。
【讨论】:
select to_timestamp(col1::TEXT, 'YYYYMMDD');
我认为这是最好的
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()
【讨论】: