Sql 在BigQuery中如何将历元转换为日期?

Sql 在BigQuery中如何将历元转换为日期?,sql,google-bigquery,Sql,Google Bigquery,所以我要做的就是把历元转换成日期格式。我得到的输入变化很大 1518121195039482 1518122508171529 1518120794058543 1518124107950252 所有这些都以微秒为单位。我想知道的是,如何将它转换为实际日期,而不是微秒,如: 2018-07-28 2018-07-01 2018-07-10 我试过做几个不同的查询,但还没有完全理解,在运行查询之前,我一直在出错或出错 任何帮助都会很好!如果有人需要更多的信息,请让我知道,我会尽力解释 -May

所以我要做的就是把历元转换成日期格式。我得到的输入变化很大

1518121195039482
1518122508171529
1518120794058543
1518124107950252
所有这些都以微秒为单位。我想知道的是,如何将它转换为实际日期,而不是微秒,如:

2018-07-28
2018-07-01
2018-07-10
我试过做几个不同的查询,但还没有完全理解,在运行查询之前,我一直在出错或出错

任何帮助都会很好!如果有人需要更多的信息,请让我知道,我会尽力解释


-Maykid

在BigQuery标准SQL中,您应该使用TIMESTAMP_MICROS()函数进行此操作,如下例所示

#standardSQL
WITH `project.dataset.table` AS (
  SELECT 1518121195039482 ts UNION ALL
  SELECT 1518122508171529 UNION ALL
  SELECT 1518120794058543 UNION ALL
  SELECT 1518124107950252 
)
SELECT ts, TIMESTAMP_MICROS(ts)
FROM `project.dataset.table`  
在BigQueryLegacy SQL中,您可以使用USEC_TO_TIMESTAMP()进行此操作,如下例所示

#legacySQL
SELECT ts, USEC_TO_TIMESTAMP(ts)
FROM 
  (SELECT 1518121195039482 ts),
  (SELECT 1518122508171529 ts),
  (SELECT 1518120794058543 ts),
  (SELECT 1518124107950252 ts)
两者都返回:

Row ts                  f0_  
1   1518121195039482    2018-02-08 20:19:55.039482 UTC   
2   1518122508171529    2018-02-08 20:41:48.171529 UTC   
3   1518120794058543    2018-02-08 20:13:14.058543 UTC   
4   1518124107950252    2018-02-08 21:08:27.950252 UTC   

您需要
时间戳\u MICROS()


还有一些函数:
timestamp\u millis()
timestamp\u seconds()
取决于您所说的“历元”的含义。

Google BigQuery SQL的解决方案:

 SELECT TIMESTAMP_MICROS(1230219000000000) as timestamp;

我想是毫秒。如果列名为Event\u Time,是否有办法将该列中的所有内容从毫秒转换为可以使用的日期?真的!英雄联盟这不是已经存在的答案的复制粘贴吗?!
 SELECT TIMESTAMP_MICROS(1230219000000000) as timestamp;