【发布时间】:2019-02-19 12:40:49
【问题描述】:
我有一个 DateTime 维度,日期如下:
Datetime Date hour
--------------------------------------
2026-01-01 00:00:00.0000000 24
2025-12-31 23:00:00.0000000 23
2025-12-31 22:00:00.0000000 22
2025-12-31 21:00:00.0000000 21
2025-12-31 20:00:00.0000000 20
2025-12-31 19:00:00.0000000 19
2025-12-31 18:00:00.0000000 18
2025-12-31 17:00:00.0000000 17
2025-12-31 16:00:00.0000000 16
2025-12-31 15:00:00.0000000 15
2025-12-31 14:00:00.0000000 14
2025-12-31 13:00:00.0000000 13
2025-12-31 12:00:00.0000000 12
2025-12-31 11:00:00.0000000 11
2025-12-31 10:00:00.0000000 10
2025-12-31 09:00:00.0000000 9
2025-12-31 08:00:00.0000000 8
2025-12-31 07:00:00.0000000 7
2025-12-31 06:00:00.0000000 6
2025-12-31 05:00:00.0000000 5
2025-12-31 04:00:00.0000000 4
2025-12-31 03:00:00.0000000 3
2025-12-31 02:00:00.0000000 2
2025-12-31 01:00:00.0000000 1
由于系统时间,我需要我的时间从 6 点开始,但我该怎么做?我可以用硬编码的值创建一个 temptable 并加入,但一定有更简单的方法吗?
期望的结果:
Datetime Date hour
--------------------------------------
2026-01-01 00:00:00.0000000 19
2025-12-31 23:00:00.0000000 18
2025-12-31 22:00:00.0000000 17
2025-12-31 21:00:00.0000000 16
2025-12-31 20:00:00.0000000 15
2025-12-31 19:00:00.0000000 14
2025-12-31 18:00:00.0000000 13
2025-12-31 17:00:00.0000000 12
2025-12-31 16:00:00.0000000 11
2025-12-31 15:00:00.0000000 10
2025-12-31 14:00:00.0000000 9
2025-12-31 13:00:00.0000000 8
2025-12-31 12:00:00.0000000 7
2025-12-31 11:00:00.0000000 6
2025-12-31 10:00:00.0000000 5
2025-12-31 09:00:00.0000000 4
2025-12-31 08:00:00.0000000 3
2025-12-31 07:00:00.0000000 2
2025-12-31 06:00:00.0000000 1
2025-12-31 05:00:00.0000000 24
2025-12-31 04:00:00.0000000 23
2025-12-31 03:00:00.0000000 22
2025-12-31 02:00:00.0000000 21
2025-12-31 01:00:00.0000000 20
还有关于我为什么不持有 DateDimension 和 时间维度。这不能满足我的要求,因为我有很多 更多关于我的日期时间维度的业务规则
【问题讨论】:
标签: sql-server date datetime sql-server-2017