Teradata - ฟังก์ชันวันที่ / เวลา

บทนี้กล่าวถึงฟังก์ชันวันที่ / เวลาที่มีอยู่ใน Teradata

วันที่จัดเก็บ

วันที่จะถูกจัดเก็บเป็นจำนวนเต็มภายในโดยใช้สูตรต่อไปนี้

((YEAR - 1900) * 10000) + (MONTH * 100) + DAY

คุณสามารถใช้แบบสอบถามต่อไปนี้เพื่อตรวจสอบวิธีการจัดเก็บวันที่

SELECT CAST(CURRENT_DATE AS INTEGER);

เนื่องจากวันที่ถูกจัดเก็บเป็นจำนวนเต็มคุณจึงสามารถดำเนินการทางคณิตศาสตร์ได้ Teradata จัดเตรียมฟังก์ชันเพื่อดำเนินการเหล่านี้

สารสกัด

ฟังก์ชัน EXTRACT จะแยกส่วนของวันเดือนและปีจากค่า DATE ฟังก์ชันนี้ยังใช้เพื่อแยกชั่วโมงนาทีและวินาทีจากค่า TIME / TIMESTAMP

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีแยกค่าปีเดือนวันที่ชั่วโมงนาทีและวินาทีจากค่าวันที่และเวลา

SELECT EXTRACT(YEAR FROM CURRENT_DATE);  
EXTRACT(YEAR FROM Date) 
----------------------- 
        2016  
SELECT EXTRACT(MONTH FROM CURRENT_DATE);  
EXTRACT(MONTH FROM Date) 
------------------------ 
          1        
SELECT EXTRACT(DAY FROM CURRENT_DATE);  
EXTRACT(DAY FROM Date) 
------------------------ 
          1    
       
SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP);  
EXTRACT(HOUR FROM Current TimeStamp(6)) 
--------------------------------------- 
                 4      
SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP);  
EXTRACT(MINUTE FROM Current TimeStamp(6)) 
----------------------------------------- 
                 54  
SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP);  
EXTRACT(SECOND FROM Current TimeStamp(6)) 
----------------------------------------- 
              27.140000

ช่วงเวลา

Teradata มีฟังก์ชัน INTERVAL เพื่อดำเนินการทางคณิตศาสตร์ในค่า DATE และ TIME ฟังก์ชัน INTERVAL มีสองประเภท

ช่วงปี - เดือน

  • YEAR
  • ปีต่อเดือน
  • MONTH

ช่วงวัน - เวลา

  • DAY
  • วันต่อชั่วโมง
  • วันต่อนาที
  • วันถึงวินาที
  • HOUR
  • ชั่วโมงต่อนาที
  • ชั่วโมงถึงวินาที
  • MINUTE
  • นาทีถึงวินาที
  • SECOND

ตัวอย่าง

ตัวอย่างต่อไปนี้จะเพิ่ม 3 ปีในวันที่ปัจจุบัน

SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR; 
  Date    (Date+ 3) 
--------  --------- 
16/01/01   19/01/01

ตัวอย่างต่อไปนี้จะเพิ่ม 3 ปีและ 01 เดือนในวันที่ปัจจุบัน

SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH; 
 Date     (Date+ 3-01) 
--------  ------------ 
16/01/01    19/02/01

ตัวอย่างต่อไปนี้จะเพิ่มเวลา 01 วัน 05 ชั่วโมง 10 นาทีในการประทับเวลาปัจจุบัน

SELECT CURRENT_TIMESTAMP,CURRENT_TIMESTAMP + INTERVAL '01 05:10' DAY TO MINUTE; 
     Current TimeStamp(6)         (Current TimeStamp(6)+ 1 05:10) 
--------------------------------  -------------------------------- 
2016-01-01 04:57:26.360000+00:00  2016-01-02 10:07:26.360000+00:00