2013-12-12 3 views
1

Я использую Teradata и работаю над оператором SQL. У меня есть таблица, где атрибут «day_of_week». Воскресенье 1, понедельник - 2 и т.д.Выберите, где день недели - день сегодняшнего дня

Я хотел бы выбрать только строки, где day_of_week совпадает с сегодняшним. Например, сегодня четверг (5-й день), поэтому я хотел бы выбрать, где day_of_week = 5. Завтра пятница, я хочу, чтобы выбрать, где день = 6.

Я знаю, как вычислить день недели, соответствующий сегодня: выберите sc.day_of_week из sys_calendar.calendar СБН где sc.calendar_date = текущая_дата

Но я не могу использовать такой оператор в предложении where другого оператора select.

Как бы вы решили решить мою проблему?

ответ

2

Что вы TD релиз? С 13.10 есть функция DAY_OF_WEEK (которая была переименована в td_day_of_week в TD14):

WHERE day_of_week = td_day_of_week(current_date); 
+0

Это именно оно. Большое спасибо ! – Myna

0

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

where day_of_week = (select sc.day_of_week 
        from sys_calendar.calendar sc 
        where sc.calendar_date = current_date 
        ) 
+0

Я попробовал этот синтаксис, он тоже работает. Спасибо :) – Myna

Смежные вопросы