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 서버 내 시간 값이있는 생겼는지이 때문에 yyyy-mm-dd HH:mm:ss.l DateTimeFormat을 내 미래의 날짜를 삽입 할 계획 어디 필요합니다.

나는 위의 코드를 실행하면 내가이 출력 점점 계속 : 그것은 2017년 11월 25일 (21)로 변경됩니다 갑자기 다음

2017년 11월 25일 22시 11분 24초 과 : 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

바보 같은 오타입니다. 내가 HH : mm : ss를 사용했을 때 HH가되어야합니다. nn : ss –

답변

1

전체 문제는 아래 오타로했다. HH:nn:ss이어야합니다. 분에 대해서는 mm이 아니라 nn입니다.

3

분을 사용하면 1에서 30 사이의 값으로 많은 값을 얻을 수 없습니다.

seconds [600 to 1800] 또는 miliseconds [600000-180000]을 사용하면 다소 무작위로 만들 수 있습니다.

<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'을 확인하십시오. –