如何在 BigQuery 中排序日期和时间

问题描述 投票:0回答:1

我正在使用从 2021 年 7 月 1 日到 2022 年 5 月 31 日运行的数据集。我将原始 Excel 电子表格转换为 CSV 文件,但是当我运行查询并尝试按日期排序时,我的输出从 1/1 开始/2022。 (当我使用 BigQuery“排序”功能时也会发生同样的事情)。我的日期架构是一个可为空的字符串,格式为 mm/dd/yyyy,采用 24 小时制,增量为 10 分钟(7 月 6 日凌晨 4:40 列为 7/6/2021 4:40)。出于数据分析和图表/图形目的,我希望数据从最早到最晚运行;我是否需要将这些日期转换为不同的格式(包括时区?)还是我还缺少其他内容?

谢谢!

附注我尝试过按日期排序和使用“排序”功能,两者都得到相同的结果(数据从 2022 年 1 月 1 日开始,而不是 2021 年 7 月 1 日开始)。

sql date datetime google-bigquery
1个回答
0
投票

以 YYYY-MM-DD 格式以外的任何格式对日期进行排序都会产生无用的排序顺序输出。

--generate random dates in format m/d/yyyy HH:MM
WITH table1 AS (
  SELECT FORMAT_DATETIME("%m/%d/%Y %R",
    TIMESTAMP_ADD('2010-01-01 00:00:00' , INTERVAL CAST(TIMESTAMP_DIFF('2020-12-31 23:59:59', '2010-01-01 00:00:00', DAY)*RAND() AS INT64) DAY)) AS dates
  FROM
    UNNEST(GENERATE_ARRAY(1, 10))
)

--sort by yyyy-mm-dd HH:MM while leaving the original values intact
SELECT dates
FROM table1
ORDER BY FORMAT_DATETIME("%Y/%m/%d %R",PARSE_DATETIME("%m/%d/%Y  %R",dates))
© www.soinside.com 2019 - 2024. All rights reserved.