Teradata - Chức năng Ngày / Giờ
Chương này thảo luận về các chức năng ngày / giờ có sẵn trong Teradata.
Lưu trữ ngày
Ngày được lưu trữ dưới dạng số nguyên trong nội bộ bằng cách sử dụng công thức sau.
((YEAR - 1900) * 10000) + (MONTH * 100) + DAY
Bạn có thể sử dụng truy vấn sau để kiểm tra cách lưu trữ ngày tháng.
SELECT CAST(CURRENT_DATE AS INTEGER);
Vì ngày tháng được lưu trữ dưới dạng số nguyên, bạn có thể thực hiện một số phép toán số học trên chúng. Teradata cung cấp các chức năng để thực hiện các thao tác này.
TRÍCH XUẤT
Hàm EXTRACT trích xuất các phần của ngày, tháng và năm từ giá trị DATE. Chức năng này cũng được sử dụng để trích xuất giờ, phút và giây từ giá trị TIME / TIMESTAMP.
Thí dụ
Các ví dụ sau đây cho thấy cách trích xuất các giá trị Năm, Tháng, Ngày, Giờ, Phút và thứ hai từ các giá trị Ngày và Dấu thời gian.
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
INTERVAL
Teradata cung cấp hàm INTERVAL để thực hiện các phép toán số học trên các giá trị NGÀY và GIỜ. Có hai loại chức năng INTERVAL.
Khoảng thời gian năm tháng
- YEAR
- NĂM ĐẾN THÁNG
- MONTH
Khoảng thời gian trong ngày
- DAY
- NGÀY ĐẾN GIỜ
- NGÀY ĐẾN PHÚT
- NGÀY ĐẾN THỨ HAI
- HOUR
- GIỜ ĐẾN PHÚT
- GIỜ ĐẾN GIÂY
- MINUTE
- PHÚT ĐẾN GIÂY
- SECOND
Thí dụ
Ví dụ sau đây thêm 3 năm cho ngày hiện tại.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
Date (Date+ 3)
-------- ---------
16/01/01 19/01/01
Ví dụ sau đây thêm 3 năm và 01 tháng cho ngày hiện tại.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH;
Date (Date+ 3-01)
-------- ------------
16/01/01 19/02/01
Ví dụ sau thêm 01 ngày, 05 giờ và 10 phút vào dấu thời gian hiện tại.
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