проверьте, отображается ли дата в таблице, и если да, распечатайте некоторую таблицу SQL

#sql-server #date #tsql #if-statement

#sql-server #Дата #tsql #if-оператор

Вопрос:

необходимо проверить, отображается ли сегодня в какой-либо таблице дат, и если да, то для печати таблицы (в задании, выполняемом каждый день) я должен использовать IF .

вот что я пытаюсь — но это не работает: потому что в табличном времени больше 1 значения. я также пытаюсь использовать EXISTS, но это тоже не работает.

 IF GETDATE()  = (
select date
from Time 
where day_by_OF = 2
)

 
begin 
exec sp_run_update;
end
  

Комментарии:

1. Хорошо, я кое-что узнал. я использую SQL Server

2. Что это значит: «распечатать таблицу»?

3. я обновлю свое предложение. мне нужно запустить процедуру, если условие правильное

4. Итак, если today появляется в любой дате, где day_by_OF = 2, тогда вы выполняете?

5. да, если day_by_OF = 2, то вы выполняете

Ответ №1:

Если я правильно вас понял, все будет в порядке:

 IF ( select count(*)
     from Time 
     where day_by_OF = 2 
     and date = GETDATE())  > 0
begin                  
    select * from time;
end;

 
  

Ответ №2:

Помимо того, как писать процедурные вещи в sql-server, лучше позволить базе данных применять ваши критерии поиска:

 IF EXISTS (SELECT 1 FROM Time WHERE convert(date,date) = CONVERT (date, GETDATE()))
  

Может быть, это не работает, потому GETDATE() что возвращает значение datetime, а не дату.

Дополнительная информация о GETDATE

Ответ №3:

это работает:

 IF EXISTS (SELECT date FROM time 
WHERE day_by_OF = 2
 and convert(date,date) = CONVERT (date, GETDATE()))
  

спасибо вам всем