当我环顾四周的时候,我没有找到任何简单的答案,所以我想我应该把它放在这里,以防有人和我有同样的问题
我在谷歌的BigQuery中使用ReDash分析,并在数据源设置中打开了标准SQL。出于查询的目的,我需要将时间戳(以毫秒为单位的unix时间作为字符串)转换为日期格式,以便可以使用DATE_DIFF方法。
举个例子..。"1494865480000"
到"2017-05-15"
困难在于,转换和转换过于严格,似乎没有足够的方法使其解析。下面看我的答案!(不过,让我知道一些SQL老师是否知道一种更雄辩的方式!)
发布于 2017-05-15 16:36:30
在标准SQL中,使用TIMESTAMP_MICROS
函数和EXTRACT(DATE FROM <timestamp>)
函数
SELECT EXTRACT(DATE FROM TIMESTAMP_MILLIS(1494865480000))
发布于 2017-05-17 04:35:02
使用TIMESTAMP_MILLIS()的一种简单方法是:
#standardSQL
SELECT DATE(TIMESTAMP_MILLIS(CAST("1494865480000" AS INT64)))
2017-05-15
发布于 2017-05-15 16:30:29
经过多次尝试和错误,这是我的解决方案:
DATE_ADD( DATE'1970-01-01', INTERVAL CAST( ( CAST( epochTimestamp AS INT64 ) / 86400000 ) AS INT64 ) DAY ) AS convertedDate
也就是说,我将字符串转换为整数,除以一天中的毫秒数,然后使用DATE_ADD方法,并将结果添加到Epoch时间的开始,并计算出结果的一天。
我希望这能节省另一个孩子的时间!
https://stackoverflow.com/questions/43983093
复制相似问题