source

2초 동안 어떻게 기다리죠?

lovecheck 2023. 4. 7. 21:33
반응형

2초 동안 어떻게 기다리죠?

지정된 초수만큼 실행이 지연되는 이유는 무엇입니까?

이 방법으로는 할 수 없습니다.

WAITFOR DELAY '00:02';

올바른 형식은 무엇입니까?

매뉴얼에서는 필요한 문자열 형식을 명시적으로 설명하지 않습니다.

이것은 2초간 대기합니다.

WAITFOR DELAY '00:00:02';

형식은hh:mi:ss.mmm.

다른 답변에서 설명한 바와 같이 표준 문자열 기반 구문에서는 다음 사항이 모두 작동합니다.

WAITFOR DELAY '02:00' --Two hours
WAITFOR DELAY '00:02' --Two minutes
WAITFOR DELAY '00:00:02' --Two seconds
WAITFOR DELAY '00:00:00.200' --Two tenths of a seconds

다른 방법으로도 전달이 가능합니다.DATETIME가치가 있어요. 제가 이걸 다른 것과 혼동하고 있다고 생각하실 수도 있어요.WAITFOR TIME단, 다음 경우에도 기능합니다.WAITFOR DELAY.

합격에 관한 고려 사항DATETIME:

  • 변수로 넘어가야 하기 때문에 더 이상 좋은 원라이너가 아닙니다.
  • 지연은 에폭(Epoch) 이후 시간으로 측정됩니다.'1900-01-01').
  • 가변적인 지연이 필요한 상황의 경우, 보다 쉽게 데이터를 조작할 수 있습니다.DATETIME적절한 포맷을 하기보다VARCHAR.

2초 동안 기다리는 방법:

--Example 1
DECLARE @Delay1 DATETIME
SELECT @Delay1 = '1900-01-01 00:00:02.000'
WAITFOR DELAY @Delay1

--Example 2
DECLARE @Delay2 DATETIME
SELECT @Delay2 = dateadd(SECOND, 2, convert(DATETIME, 0))
WAITFOR DELAY @Delay2

기다림에 관한 메모TIMEDELAY:

만약 당신이 우연히 합격한다면WAITFOR TIME1초라도 지나갔는데 다시는 돌아오지 않는 거야?확인해 주세요.

--Example 3
DECLARE @Time1 DATETIME
SELECT @Time1 = getdate()
WAITFOR DELAY '00:00:01'
WAITFOR TIME @Time1 --WILL HANG FOREVER

불행하게도,WAITFOR DELAY네거티브를 통과하면 같은 동작을 합니다.DATETIME가치(네, 그거요)

--Example 4
DECLARE @Delay3 DATETIME
SELECT @Delay3 = dateadd(SECOND, -1, convert(DATETIME, 0))
WAITFOR DELAY @Delay3 --WILL HANG FOREVER

단, 저는 여전히 이 기능을 사용하는 것을 권하고 싶습니다.WAITFOR DELAY지연이 항상 플러스임을 확인할 수 있기 때문에 정적인 시간에 걸쳐 코드가 도달하는 데 걸리는 시간만큼 지연이 그대로 유지됩니다.WAITFOR진술.

이건 어때?

WAITFOR DELAY '00:00:02';

"00:02"가 있으면 Hours:Minutes로 해석됩니다.

다음의 예를 시험해 보겠습니다.

exec DBMS_LOCK.sleep(5);

스크립트의 전체는 다음과 같습니다.

SELECT TO_CHAR (SYSDATE, 'MM-DD-YYYY HH24:MI:SS') "Start Date / Time" FROM DUAL;

exec DBMS_LOCK.sleep(5);

SELECT TO_CHAR (SYSDATE, 'MM-DD-YYYY HH24:MI:SS') "End Date / Time" FROM DUAL;

언급URL : https://stackoverflow.com/questions/7676164/how-to-wait-for-2-seconds

반응형