生成随机时间

本文介绍了一种使用SQL语句生成特定格式时间戳的方法,包括开始日期、结束日期、毫秒、秒、分钟和小时的组合。
DECLARE @date_from DATETIME; --开始日期
DECLARE @date_to DATETIME; --结束日期
SET @date_from = '2007-10-01';
SET @date_to = '2008-12-30';


select Convert(nvarchar(10),@date_from +(ABS(CAST(CAST( NewID() AS BINARY(8) )AS INT)) %CAST((@date_to - @date_from)AS INT)),23)
+ ' '+right('0'+cast( ABS(CAST(CAST( NewID() AS BINARY(8) )AS INT)) %24 as nvarchar(2)),2)
+':'+right('0'+cast(ABS(CAST(CAST( NewID() AS BINARY(8) )AS INT)) %60  as nvarchar(2)),2)
+':'+right('0'+cast(ABS(CAST(CAST( NewID() AS BINARY(8) )AS INT)) %60  as nvarchar(2)),2)
### 在 Power BI 中生成随机时间的方法 在 Power BI 中,DAX 并没有直接提供生成随机时间的函数。然而,可以通过组合其他函数实现这一目标。以下是一些可能的方法和表达式: #### 方法 1:使用 `RAND()` 函数生成随机秒数 可以利用 DAX 的 `RAND()` 函数生成一个介于 0 和 1 之间的随机数,并将其转换为随机秒数,从而生成随机时间。 ```dax RandomTime = TIME( INT(RAND() * 24), INT(RAND() * 60), INT(RAND() * 60) ) ``` 上述代码中: - `INT(RAND() * 24)` 生成一个介于 0 到 23 的随机小时数[^4]。 - `INT(RAND() * 60)` 分别生成随机分钟数和随机秒数[^4]。 #### 方法 2:结合日期生成随机日期时间 如果需要生成包含日期的随机时间,可以将随机时间随机日期结合起来: ```dax RandomDateTime = DATE( 2023, INT(RAND() * 12) + 1, INT(RAND() * 28) + 1 ) + RandomTime ``` 这里假设年份固定为 2023,月份和日期分别通过 `RAND()` 生成随机值。注意,为了简化处理,日期范围限制在每月最多 28 天以避免复杂性[^5]。 #### 方法 3:利用 `CALCULATETABLE` 动态生成随机时间 对于更复杂的场景,可以结合 `CALCULATETABLE` 和其他筛选逻辑生成动态随机时间。例如: ```dax RandomTimeTable = SUMX ( CALCULATETABLE ( '例子', '例子'[日期] < 2015, VALUES ( '例子'[日期] ) ), TIME ( INT(RAND() * 24), INT(RAND() * 60), INT(RAND() * 60) ) ) ``` 此方法适用于需要基于特定条件生成随机时间的情况[^3]。 --- ### 注意事项 - 随机函数如 `RAND()` 每次计算时都会重新生成新值,因此可能会导致刷新数据时结果发生变化[^4]。 - 如果需要固定的随机时间,可以考虑在外部工具(如 Excel)中生成随机时间并导入到 Power BI[^6]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

感谢一路走过的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值