首页 > 解决方案 > SQL - 将日期移至 48 小时窗口内

问题描述

我有一堆历史时间戳日期。基本上,我需要模拟一个新日期,以便将历史日期移至当前日期的 48 小时窗口内。

这是日期列的摘录:

2019-05-07 17:46:57.733 UTC
2019-05-15 13:03:25.247 UTC
2019-05-07 13:27:49.453 UTC 
2019-05-11 04:24:02.293 UTC 
2019-04-18 08:00:54.660 UTC 
2019-04-25 05:34:36.777 UTC
2019-05-14 16:48:07.863 UTC

假设当前日期为2019-10-03 15:00:00. 预期的日期范围应介于2019-10-03 15:00:002019-10-01 15:00:00

预期的结果应该如下。

2019-10-02 17:46:57.733 UTC
2019-10-03 13:03:25.247 UTC
2019-10-03 13:27:49.453 UTC 
2019-10-03 04:24:02.293 UTC 
2019-10-02 08:00:54.660 UTC 
2019-10-02 05:34:36.777 UTC
2019-10-01 16:48:07.863 UTC

标签: sqlgoogle-bigquery

解决方案


为什么不直接构建两天的随机时间戳呢?

select timestamp_add(current_timestamp, interval cast(rand() * (60 * 60 * 24 * 2) as int64) second)
from t

推荐阅读