首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在标准SQL中将Epoch时间戳转换为日期

如何在标准SQL中将Epoch时间戳转换为日期
EN

Stack Overflow用户
提问于 2017-05-15 15:17:52
回答 4查看 29.4K关注 0票数 8

当我环顾四周的时候,我没有找到任何简单的答案,所以我想我应该把它放在这里,以防有人和我有同样的问题

我在谷歌的BigQuery中使用ReDash分析,并在数据源设置中打开了标准SQL。出于查询的目的,我需要将时间戳(以毫秒为单位的unix时间作为字符串)转换为日期格式,以便可以使用DATE_DIFF方法。

举个例子..。"1494865480000""2017-05-15"

困难在于,转换和转换过于严格,似乎没有足够的方法使其解析。下面看我的答案!(不过,让我知道一些SQL老师是否知道一种更雄辩的方式!)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-15 16:36:30

在标准SQL中,使用TIMESTAMP_MICROS函数和EXTRACT(DATE FROM <timestamp>)函数

代码语言:javascript
运行
复制
SELECT EXTRACT(DATE FROM TIMESTAMP_MILLIS(1494865480000))
票数 12
EN

Stack Overflow用户

发布于 2017-05-17 04:35:02

使用TIMESTAMP_MILLIS()的一种简单方法是:

代码语言:javascript
运行
复制
#standardSQL
SELECT DATE(TIMESTAMP_MILLIS(CAST("1494865480000" AS INT64)))

2017-05-15  
票数 3
EN

Stack Overflow用户

发布于 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时间的开始,并计算出结果的一天。

我希望这能节省另一个孩子的时间!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43983093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档