Как ожидать в сценарии пакетной обработки? [дубликат]

это потому, что ваш update_date_time содержит компонент времени. Нормальным решением этого является использование >= и <. Вы используете больше или равно дате и меньше, чем на следующий день.

SELECT Staff,Id,No,Hex,Ref,sex, update_date_time 
FROM   workers 
WHERE  update_date_time >= '2019-03-18'
AND    update_date_time <  '2019-03-19'

ИЛИ

DECLARE @input DATE = '2019-03-18'

SELECT Staff,Id,No,Hex,Ref,sex, update_date_time 
FROM   workers 
WHERE  update_date_time >= @input
AND    update_date_time <  DATEADD(DAY, 1, @input)

Конечно, если вы не заботитесь о производительности и хотите и более легкий запрос, преобразуйте столбец update_date_time в DATE перед сравнением [ 1110]

SELECT Staff,Id,No,Hex,Ref,sex, update_date_time 
FROM   workers 
WHERE  CONVERT(DATE, update_date_time) = @input
159
задан double-beep 2 February 2019 в 09:14
поделиться

6 ответов

Вы можете пропинговать адрес, который наверняка не существует, и указать желаемое время ожидания:

ping 192.0.2.2 -n 1 -w 10000 > nul

А так как адрес не существует, будет ждать 10000 мс (10 секунд) и вернется.

  • Часть -w 10000 задает желаемое время ожидания в миллисекундах.
  • -n 1 part сообщает ping, что он должен попытаться только один раз (обычно это будет пытаться 4 раза).
  • Часть > nul добавлена, поэтому команда ping ничего не выводит на экран.

Вы можете легко сделать команду сна самостоятельно, создавая sleep.bat где-нибудь в вашей переменной PATH и используя описанную выше технику:

rem SLEEP.BAT - sleeps by the supplied number of seconds

@ping 192.0.2.2 -n 1 -w %1000 > nul

ПРИМЕЧАНИЕ: Адрес 192.0.2.x зарезервирован согласно RFC 3330 , поэтому он точно не будет существовать в реальном мире. Цитата из спецификации:

192.0.2. документация и пример кода. Это часто используется в сочетании с доменные имена example.com или example.net в поставщике и протоколе документация. Адреса в этом блоке не должны появляться на общедоступный Интернет.

263
ответ дан 23 November 2019 в 21:33
поделиться

Вам лучше пинговать 127.0.0.1 . Windows ping делает паузу на одну секунду между пингами, поэтому, если вы хотите спать в течение 10 секунд, используйте

ping -n 11 127.0.0.1 > nul

. Таким образом, вам не нужно беспокоиться о неожиданных ранних возвратах (скажем, нет маршрута по умолчанию, и 123.45.67.89 мгновенно известно, что оно недоступно.)

136
ответ дан Gleb 23 November 2019 в 21:33
поделиться

Я действительно нашел правильную команду для использования .. ее вызванное время ожидания: http: //www.ss64 .com / nt / timeout.html

124
ответ дан Thomaschaaf 23 November 2019 в 21:33
поделиться

Хорошо, а sleep вообще существует на вашем компьютере с Windows XP? Согласно этому сообщению: http://malektips.com/xp_dos_0002.html sleep недоступно в Windows XP, и вам необходимо загрузить Windows 2003 Resource Kit чтобы получить его.

Ответ Чакрита дает вам еще один способ сделать паузу.

Попробуйте запустить sleep 10 из командной строки.

6
ответ дан 23 November 2019 в 21:33
поделиться

Что насчет:

@echo off
set wait=%1
echo waiting %wait% s
echo wscript.sleep %wait%000 > wait.vbs
wscript.exe wait.vbs
del wait.vbs
7
ответ дан 23 November 2019 в 21:33
поделиться

Я использовал это

:top
cls
type G:\empty.txt
type I:\empty.txt
timeout /T 500
goto top
44
ответ дан 23 November 2019 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: