Comment peut-on retarder l'exécution d'un nombre de secondes spécifié?
Cela ne le fait pas:
WAITFOR DELAY '00:02';
Quel est le format correct?
Comment peut-on retarder l'exécution d'un nombre de secondes spécifié?
Cela ne le fait pas:
WAITFOR DELAY '00:02';
Quel est le format correct?
Réponses:
La documentation de
WAITFOR()
ne présente pas explicitement le format de chaîne requis.Cela attendra 2 secondes:
Le format est
hh:mi:ss.mmm
.la source
Comme mentionné dans d'autres réponses, tous les éléments suivants fonctionneront pour la syntaxe standard basée sur des chaînes.
Il existe également une méthode alternative pour lui transmettre une
DATETIME
valeur. Vous pensez peut-être que je confond cela avecWAITFOR TIME
, mais cela fonctionne aussi pourWAITFOR DELAY
.Considérations pour réussir
DATETIME
:'1900-01-01'
).DATETIME
que de formater correctement aVARCHAR
.Comment attendre 2 secondes:
Une note sur l'attente de
TIME
vsDELAY
:Avez-vous déjà remarqué que si vous dépassez accidentellement
WAITFOR TIME
une date déjà passée, ne serait-ce que d'une seconde, elle ne reviendra jamais? Vérifiez-le:Malheureusement,
WAITFOR DELAY
fera la même chose si vous lui passez uneDATETIME
valeur négative (oui, c'est une chose).Cependant, je recommanderais toujours d'utiliser
WAITFOR DELAY
sur un temps statique car vous pouvez toujours confirmer que votre retard est positif et qu'il le restera aussi longtemps qu'il faudra à votre code pour atteindre l'WAITFOR
instruction.la source
Que dis-tu de ça?
Si vous avez "00:02", vous l'interprétez comme Heures: Minutes.
la source
Essayez cet exemple:
Voici tout le script:
la source