Datetime 将随机时间添加到日期时间值

Datetime 将随机时间添加到日期时间值,datetime,coldfusion,coldfusion-10,coldfusion-11,coldfusion-2016,Datetime,Coldfusion,Coldfusion 10,Coldfusion 11,Coldfusion 2016,我想给约会增加1-30分钟的随机时间,但ColdFusion似乎不喜欢这样。无论我运行以下代码多少次,它都会向Now()值添加相同的分钟数。我不明白为什么 <cfset DateFuture = DateTimeFormat(DateAdd('n', RandRange(1, 30), Now()), 'yyyy-mm-dd HH:mm:ss.l')/> <cfoutput>#DateFuture#</cfoutput> #日期未来# 我需要yyyy

我想给约会增加1-30分钟的随机时间,但ColdFusion似乎不喜欢这样。无论我运行以下代码多少次,它都会向
Now()
值添加相同的分钟数。我不明白为什么

<cfset DateFuture = DateTimeFormat(DateAdd('n', RandRange(1, 30), Now()), 'yyyy-mm-dd HH:mm:ss.l')/>  
<cfoutput>#DateFuture#</cfoutput>

#日期未来#
我需要
yyyy-mm-dd HH:mm:ss.l
DateTimeFormat,因为这是我在SQL Server中的datetime值的样子,我计划在其中插入我未来的日期

如果我运行上述代码,我将继续获得以下输出:

2017-11-25 22:11:24 然后突然变成2017-11-25 21:11:16,这占用了整整一个小时,而我只想增加时间

它为什么这样做毫无意义。我在英国,但使用国际日期格式作为SQL Server的默认格式,如上所述


更新:这是一个打字错误!日期时间格式应为
yyyy-mm-dd HH:nn:ss.l
”nn是分钟,不是mm。哦

如果使用分钟数,1到30的范围不会给你很多值

使用
秒数
[600到1800]或
毫秒数
[600000到1800000]可以使其更随机

<cfset miliSeconds = RandRange(600000, 1800000) />
<cfdump var="#miliSeconds#" />

<cfset DateFuture = DateTimeFormat( DateAdd('l', miliSeconds, now()),  'yyyy-mm-dd HH:nn:ss.l')/>  
<cfdump var="#DateFuture#" />


运行代码:
整个问题归结为打字错误。它应该是
HH:nn:ss
。注意
nn
而不是
mm
持续几分钟

我很想使用SQL Server的日期和时间。SQL 2016有一组更加健壮的函数。有一些UDF可以让SQL 2014做各种各样的事情。也许但是ColdFusion的函数应该像宣传的那样工作?这是一个愚蠢的错误。我使用HH:MM:SS应该是HH:NN:SSI知道这不是一个博客,但是当你认为SQL Server具有所有这些日期函数:很多都没有ColdFusion的等价物。再重复一次,打字错误也会把事情搞得一团糟。更好的是,把它标记为一个副本。小时与月是一个常见的日期掩码错误。整个问题归结为打字错误。应该是HH:nn:ss。注意“nn”而不是“mm”持续几分钟。