2

日付に1〜30分のランダムな時間を追加したいのですが、ColdFusionではそれが気に入らないようです。次のコードを何回実行しても、同じ値の分がNow()に追加されます。なぜ私は理解できません。DateTime値にランダムな時間を追加する

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

このSQL Serverでの私のdatetime値が、私は私の将来の日付を挿入する予定のあるように見える何ので、私はyyyy-mm-dd HH:mm:ss.l DateTimeFormatを必要としています。私は上記のコードを実行した場合

私はこの出力を得続ける:

2017年11月25日夜09時11分24秒 と、突然それが2017年11月25日21に変更されます: 11時16分私は時間に追加したいときに全体の時間を取っている!

なぜこのような動作をするのか分かりません。私は英国にいますが、上記のようなSQL Serverのデフォルト形式で国際日付形式を使用しています。

更新:誤植です。 DateTimeFormatはyyyy-mm-dd HH:nn:ss.lである必要があります。 'nn'は分であり、 'mm'ではありません。 D'oh!

+1

私はSQL Serverの日時を使用したいと思うでしょう。 SQL 2016ははるかに堅牢な機能セットを備えています。あらゆる種類のことを行うためにSQL 2014を取得するudfsがあります。 –

+1

確かにColdFusionの機能は宣伝されているように機能するはずですか? –

+0

その愚かなタイプミス。 –

答えて

1

問題全体がダウンタイプミスとなりました。 HH:nn:ssにする必要があります。分の場合mmではなく、nnに注目してください。

3

分を使用する場合、1〜30の範囲では多くの値が得られません。

seconds [600 to 1800]またはmiliseconds [600000 to 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#" /> 


実行コード: https://trycf.com/gist/f26ff8edbe1736e453ded06d5adf5076/lucee5?theme=monokai

+0

全体の問題は、タイプミスになっていました。それはHH:nn:ssでなければなりません。分には 'mm'ではなく 'nn'に注目してください。 –

関連する問題