Thứ Tư, 26 tháng 10, 2022

PL/SQL - Date & Time

Trong chương này, chúng ta sẽ thảo luận về Ngày và Giờ trong PL/SQL. Có hai lớp kiểu dữ liệu liên quan đến ngày và giờ trong PL/SQL -

  • Các kiểu dữ liệu ngày giờ

  • Các kiểu dữ liệu khoảng thời gian

Các kiểu dữ liệu Ngày giờ là -

  • DATE TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE

Các kiểu dữ liệu Khoảng thời gian là -

  • INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND

Giá trị trường cho kiểu dữ liệu ngày giờ và khoảng thời gian

Cả hai kiểu dữ liệu ngày giờ và khoảng thời gian đều bao gồm các trường . Giá trị của các trường này xác định giá trị của kiểu dữ liệu. Bảng sau liệt kê các trường và các giá trị có thể có của chúng cho ngày giờ và khoảng thời gian.

Tên trường

Giá trị ngày giờ hợp lệ

Giá trị khoảng thời gian hợp lệ

YEAR

-4712 đến 9999 (không bao gồm năm 0)

Mọi số nguyên khác không

MONTH

01 đến 12

0 đến 11

DAY

01 đến 31 (giới hạn bởi các giá trị của THÁNG và NĂM, theo quy tắc của lịch cho ngôn ngữ)

Mọi số nguyên khác không

HOUR

00 đến 23

0 đến 23

MINUTE

00 đến 59

0 đến 59

SECOND

00 đến 59,9 (n), trong đó 9 (n) là độ chính xác của giây phân số thời gian

Phần 9 (n) không áp dụng cho DATE.

0 đến 59,9 (n), trong đó 9 (n) là độ chính xác của khoảng phân số giây

TIMEZONE_HOUR

-12 đến 14 (phạm vi có thể thay đổi thời gian tiết kiệm ánh sáng ban ngày)

Không áp dụng cho DATE hoặc TIMESTAMP.

Không áp dụng

TIMEZONE_MINUTE

00 đến 59

Không áp dụng cho DATE hoặc TIMESTAMP.

Không áp dụng

TIMEZONE_REGION

Không áp dụng cho DATE hoặc TIMESTAMP.

Không áp dụng

TIMEZONE_ABBR

Không áp dụng cho DATE hoặc TIMESTAMP.

Không áp dụng

Các loại dữ liệu ngày giờ và hàm

Sau đây là các kiểu dữ liệu Ngày giờ:

DATE

Nó lưu trữ thông tin ngày và giờ ở cả kiểu dữ liệu ký tự và số. Nó được làm bằng thông tin về thế kỷ, năm, tháng, ngày, giờ, phút và giây. Nó được chỉ định là -

TIMESTAMP

Đây là phần mở rộng của kiểu dữ liệu DATE. Nó lưu trữ năm, tháng và ngày của loại dữ liệu DATE, cùng với các giá trị giờ, phút và giây. Nó rất hữu ích để lưu trữ các giá trị thời gian chính xác.

TIMESTAMP WITH TIME ZONE

Đây là một biến thể của TIMESTAMP bao gồm tên khu vực múi giờ hoặc độ lệch múi giờ trong giá trị của nó. Chênh lệch múi giờ là chênh lệch (tính theo giờ và phút) giữa giờ địa phương và UTC. Loại dữ liệu này rất hữu ích để thu thập và đánh giá thông tin ngày tháng trên các vùng địa lý.

TIMESTAMP WITH LOCAL TIME ZONE

Đây là một biến thể khác của TIMESTAMP bao gồm độ lệch múi giờ trong giá trị của nó.

Bảng sau cung cấp các hàm Datetime (trong đó, x có giá trị datetime):

STT

Tên & Mô tả Hàm

1

ADD_MONTHS (x, y);

Thêm y tháng vào x .

2

LAST_DAY (x);

Trả về ngày cuối cùng của tháng.

3

MONTHS_BETWEEN (x, y);

Trả về số tháng giữa x và y .

4

NEXT_DAY (x, ngày);

Trả về ngày giờ của ngày tiếp theo sau x .

5

NEW_TIME;

Trả về giá trị thời gian / ngày từ múi giờ do người dùng chỉ định.

6

ROUND (x [, đơn vị]);

Làm tròn x .

7

SYSDATE ();

Trả về ngày giờ hiện tại.

số 8

TRUNC (x [, đơn vị]);

Cắt x .

Các hàm dấu thời gian (trong đó, x có giá trị dấu thời gian) -

STT

Tên & Mô tả Hàm

1

CURRENT_TIMESTAMP();

Trả về TIMESTAMP WITH TIME ZONE chứa thời gian phiên hiện tại cùng với múi giờ của phiên.

2

EXTRACT({ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND } | { TIMEZONE_HOUR | TIMEZONE_MINUTE } | { TIMEZONE_REGION | } TIMEZONE_ABBR ) FROM x)

Trích xuất và trả về một năm, tháng, ngày, giờ, phút, giây hoặc múi giờ từ x .

3

FROM_TZ (x, múi giờ);

Chuyển đổi TIMESTAMP x và múi giờ được chỉ định bởi time_zone thành TIMESTAMP VỚI TIMEZONE.

4

LOCALTIMESTAMP ();

Trả về TIMESTAMP chứa giờ địa phương trong múi giờ phiên.

5

SYSTIMESTAMP ();

Trả về TIMESTAMP WITH TIME ZONE chứa thời gian cơ sở dữ liệu hiện tại cùng với múi giờ cơ sở dữ liệu.

6

SYS_EXTRACT_UTC (x);

Chuyển đổi TIMESTAMP VỚI TIMEZONE x thành TIMESTAMP chứa ngày và giờ theo UTC.

7

TO_TIMESTAMP (x, [định dạng]);

Chuyển đổi chuỗi x thành TIMESTAMP.

số 8

TO_TIMESTAMP_TZ (x, [định dạng]);

Chuyển đổi chuỗi x thành TIMESTAMP VỚI TIMEZONE.

Các ví dụ

Các đoạn mã sau minh họa việc sử dụng các chức năng trên:

ví dụ 1

SELECT SYSDATE FROM DUAL;

Đầu ra -

08/31/2012 5:25:34 PM 


Ví dụ 2

SELECT TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH:MI:SS') FROM DUAL;

Đầu ra -

31-08-2012 05:26:14


Ví dụ 3

SELECT ADD_MONTHS(SYSDATE, 5) FROM DUAL;

Đầu ra -

01/31/2013 5:26:31 PM 


Ví dụ 4

SELECT LOCALTIMESTAMP FROM DUAL;

Đầu ra -

8/31/2012 5:26:55.347000 PM 


Các loại dữ liệu khoảng thời gian và hàm

Sau đây là các kiểu dữ liệu Khoảng thời gian:

  • IINTERVAL YEAR TO MONTH - Nó lưu trữ một khoảng thời gian bằng cách sử dụng các trường datetime YEAR và MONTH.

  • INTERVAL DAY TO SECOND - Nó lưu trữ một khoảng thời gian theo ngày, giờ, phút và giây.

Hàm khoảng thời gian

S.Không

Tên & Mô tả hàm

1

NUMTODSINTERVAL (x, đơn vị khoảng_thời gian);

Chuyển đổi số x thành MỘT NGÀY CAN THIỆP ĐẾN THỨ HAI.

2

NUMTOYMINTERVAL (x, khoảng_đơn vị);

Chuyển đổi số x thành INTERVAL NĂM SANG THÁNG.

3

TO_DSINTERVAL (x);

Chuyển đổi chuỗi x thành từ NGÀY INTERVAL ĐẾN GIÂY.

4

TO_YMINTERVAL (x);

Chuyển đổi chuỗi x thành INTERVAL NĂM SANG THÁNG.


=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
PL/SQL, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master