首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设定一个比实际时间更长的营业时间

设定一个比实际时间更长的营业时间
EN

Stack Overflow用户
提问于 2019-02-19 12:40:49
回答 2查看 23关注 0票数 0

我有一个DateTime维度,日期如下:

代码语言:javascript
运行
复制
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点开始,但我如何做到这一点?我可以用硬编码的值创建一个诱惑表并加入,但是有一个更简单的方法吗?

期望的结果:

代码语言:javascript
运行
复制
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和TimeDimension的问题。这不能预先满足我的需求,因为我在日期时间维度上有更多的业务规则。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-19 12:45:20

猜猜看..。

代码语言:javascript
运行
复制
UPDATE YourTable
SET [Date hour] = IIF(DATEPART(HOUR,DATEADD(HOUR, -5, [datetime])) = 0,24,DATEPART(HOUR,DATEADD(HOUR, -5, [datetime]));
票数 1
EN

Stack Overflow用户

发布于 2019-02-19 12:45:16

考虑到您的[Date hour]列已经计算完毕,您可以尝试使用模数进行更新:

代码语言:javascript
运行
复制
UPDATE yourTable
SET [Date hour] = 1 + ([Date hour] + 18) % 24;

Demo

更好的长期解决方案可能是根据原始日期时间信息将日期小时列作为计算列。用“Larnu”来回答这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54766608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档