'INTERVAL DAY TO SECOND

Can you help me to find the appropriate script conversion from this Teradata script to Azure SQL:

CASE WHEN ( ABS(EXTRACT(YEAR FROM MIN_OUCID_TMS) - EXTRACT(YEAR FROM MIN_ONEID_TMS)) )>= 2 -- prevent interval overflow
         THEN INTERVAL '01 00:00:00' DAY TO SECOND  ----set to one day max interval if very large
                ELSE ABS(( MIN_OUCID_TMS - MIN_ONEID_TMS ) DAY(4) TO SECOND)
             END
                 ELSE NULL
     END

Thank you!



Solution 1:[1]

My workaround for interval datatype:

CASE WHEN ( OUCID_REC_CNT > 0 ) THEN 
                 CASE WHEN ( ABS(DATEPART(YEAR,MIN_OUCID_TMS) - DATEPART(YEAR,MIN_ONEID_TMS)) )>= 2
                      THEN '01 00:00:00'
                      ELSE 
                      convert(varchar(20),abs(datediff(ss, MIN_OUCID_TMS, MIN_ONEID_TMS)/86400)) + ' ' + format(dateadd(ss,abs (datediff(ss, MIN_OUCID_TMS, MIN_ONEID_TMS)),0),'HH:mm:ss')
                 END
             ELSE NULL
        END                   

                                                                                      

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 A_M_2020