¿Cómo se causa un retraso en la ejecución durante un número específico de segundos?
Esto no lo hace:
WAITFOR DELAY '00:02';
¿Cuál es el formato correcto?
¿Cómo se causa un retraso en la ejecución durante un número específico de segundos?
Esto no lo hace:
WAITFOR DELAY '00:02';
¿Cuál es el formato correcto?
Respuestas:
La documentación para
WAITFOR()
no presenta explícitamente el formato de cadena requerido.Esto esperará 2 segundos:
El formato es
hh:mi:ss.mmm
.fuente
Como se menciona en otras respuestas, todo lo siguiente funcionará para la sintaxis estándar basada en cadenas.
También hay un método alternativo para pasarle un
DATETIME
valor. Puede pensar que estoy confundiendo esto conWAITFOR TIME
, pero también funcionaWAITFOR DELAY
.Consideraciones para pasar
DATETIME
:'1900-01-01'
).DATETIME
que formatear correctamente aVARCHAR
.Cómo esperar 2 segundos:
Una nota sobre la espera de
TIME
vsDELAY
:¿Alguna vez has notado que si accidentalmente pasas
WAITFOR TIME
una fecha que ya pasó, incluso por solo un segundo, nunca volverá? Echale un vistazo:Desafortunadamente,
WAITFOR DELAY
hará lo mismo si le pasa unDATETIME
valor negativo (sí, eso es una cosa).Sin embargo, aún recomendaría usar
WAITFOR DELAY
durante un tiempo estático porque siempre puede confirmar que su retraso es positivo y permanecerá así durante el tiempo que tarde su código en llegar a laWAITFOR
declaración.fuente
¿Qué tal esto?
Si tienes "00:02" está interpretando eso como Horas: Minutos.
fuente
Prueba este ejemplo:
Este es el guión completo:
fuente