【Teradata SQL】日期類型計算


1.EXTRACT(抽取年/月/日/時/分/秒) 

//抽取年/月/日/時/分/秒
SELECT EXTRACT (YEAR FROM CURRENT_DATE); 
SELECT EXTRACT (MONTH FROM CURRENT_DATE+90); 
SELECT EXTRACT (DAY FROM '1996-12-12'); 

選項:YEAR | MONTH | DAY | HOUR | MINUTE | SECOND | TIMEZONE_HOUR | TIMEZONE_MINUTE

2. 差值計算

//日期差值(年/月/日)==只寫day、month、year差值最大99天、99月、99年
select
(DATE'1995-02-02' - DATE'1995-01-01') day(4); //天數,差值最大9999天。 select (date '1908-05-01' - date '1900-01-01') month(4); //月數,差值最大9999月。 select (DATE'1999-02-02' - DATE'1995-01-01') year(4); //年數,差值最大9999年。
//時間差值(小時/分/秒)
select (end_time - start_time) HOUR(4)  //小時,差值最大9999h
select (end_time - start_time) MINUTE(4) //分鍾,差值最大9999m select (end_time - start_time) Second(4) //秒,差值最大9999s
SELECT MONTHS_BETWEEN(DATE'1995-02-02', DATE'1995-01-01'); //月數

3.日期時間加減

sel current_timestamp - interval '1' hour
sel current_date + interval '1' day

選項:year | month | day | hour | minute | second
cast(((a.aactl_tch_end_tmstp - a.actl_tch_start_tmstp) second(4)) as integer)>=15 
==>報錯超出限制,改為如下語句 a.actl_tch_end_tstp
> (a.actl_tch_start_tmstp + interval '15' second )
SELECT ADD_MONTHS ('1999-08-15' , 1);  //返回1999-09-15
SELECT ADD_MONTHS ('1999-09-30' , -1); //返回1999-08-30

4.LAST_DAY(月底日期)

SELECT LAST_DAY(DATE '2009-12-20');                //返回2019-12-31
SELECT LAST_DAY(TIMESTAMP '2009-08-25 10:14:59');  //返回2009-08-31

5.NEXT_DAY(下一個周幾日期)

SELECT NEXT_DAY(DATE '2009-12-20', 'TUESDAY'); //返回2009-12-22
SELECT NEXT_DAY(DATE '2009-12-20', 'FRIDAY');  //返回2009-12-20

選項:SUNDAY  |  MONDAY  |  TUESDAY  |  WEDNESDAY  |   THURSDAY  |  FRIDAY  |  SATURDAY 前三位簡寫也可以如SUN

6.NUMTOYMINTERVAL(年月個數)

SELECT NUMTOYMINTERVAL(100, 'MONTH'); //返回08-04,即8年4個月
SELECT NUMTOYMINTERVAL(40, 'YEAR');   //返回40-00,即40年0個月

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM