从世界标准时间提取日期,小时

时间:2020-05-04 03:24:39

标签: google-bigquery

我想从bigquery的下表中的UTC时间提取日期和小时。我已经使用时间戳通过以下代码获取日期或时间。我想将代码应用于整个专栏。如何为整列应用时间戳?你能帮忙吗?

SELECT EXTRACT(HOUR FROM TIMESTAMP "2020-05-03 16:49:47.583494")

我的数据是这样的

enter image description here

我想要这样的结果: enter image description here

1 个答案:

答案 0 :(得分:2)

您可以这样做:

SELECT my_column                                                                   AS original_value,
       DATE_FORMAT(STR_TO_DATE(my_column, "%Y-%m-%d %H:%i:%s.%f UTC"), "%e/%m/%Y") AS date,
       DATE_FORMAT(STR_TO_DATE(my_column, "%Y-%m-%d %H:%i:%s.%f UTC"), "%l%p")     AS hour
FROM my_table;

我假设该列为VARCHAR,因此我将其转换为DATE

输出:

enter image description here

演示:

您可以检查demo here


编辑:

我最初的想法是OP希望查询MySQL(可能是BigQuery基于该查询)。但是事实证明,BigQuery不是基于MySQL的。因此,您可以在BigQuery中使用FORMAT_TIMESTAMP,这就是查询的样子:

SELECT Occurrence                               AS original_value,
       FORMAT_TIMESTAMP("%e/%m/%Y", Occurrence) AS date,
       FORMAT_TIMESTAMP("%l%p", Occurrence)     AS hour
FROM mytable