получить дату последнего / текущего вторника в Teradata на основе количества дней текущей недели - PullRequest
0 голосов
/ 15 октября 2018

Как получить дату последнего вторника в Teradata, если (день недели <2), кроме текущей даты вторника (если день недели> 2)

Например, день недели = 2 на сегодня (15 октября 2018 года)затем получите дату в прошлый вторник (10.09.2008)

для дня недели> 2 (17 октября 2018) получите на этой неделе вторник (16/10/2018)

я хочу сделатьон использует точный метод Teradata предпочтительно

У меня есть ниже sql код

DECLARE @StartDt AS  DATE;
DECLARE @EndDt AS  DATE;
DECLARE @Dt AS  DATE;
select @RDt=CASE WHEN CAST(DATEPART(DW,GETDATE()) AS INT) > 2 
        THEN 
        CAST(DATEADD(WK, DATEDIFF(WK,0,GETDATE()), 1) AS DATE)
        ELSE  
         CONVERT(VARCHAR,DATEADD(WK,DATEDIFF(WK,6,GETDATE()),1),107) END

select @StartDt=CAST(DATEADD(WK,DATEDIFF(WK,6,@Dt),0) AS DATE) 
select @EndDt=CAST(DATEADD(WK,DATEDIFF(WK,6,@Dt),6) AS DATE) 

, и мне нужен эквивалентный код teradata.

1 Ответ

0 голосов
/ 15 октября 2018

Для получения следующего дня недели есть next_day, применяя некоторые логические результаты:

Next_Day(calendar_date - 7, 'tuesday')
...