PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

3 Hàm lấy Ngày, Tháng và Năm từ một Ngày trong PostgreSQL

PostgreSQL cung cấp cho chúng ta một số cách để lấy ngày, tháng và năm từ một ngày.

Ba chức năng ngay lập tức xuất hiện trong tâm trí là; DATE_PART() , EXTRACT()TO_CHAR() .

EXTRACT()

EXTRACT() function truy xuất các trường con như năm, tháng, giờ hoặc phút, một phần từ giá trị ngày / giờ.

Ví dụ:

SELECT EXTRACT(YEAR FROM date '2035-10-30');

Kết quả:

2035

Chúng tôi có thể trả về các phần ngày tháng khác nhau trong các trường riêng biệt bằng cách thực hiện ba lệnh gọi riêng biệt cho hàm này:

SELECT 
    EXTRACT(DAY FROM date '2035-10-30') AS "Day",
    EXTRACT(DOW FROM date '2035-10-30') AS "DOW",
    EXTRACT(DOY FROM date '2035-10-30') AS "DOY",
    EXTRACT(MONTH FROM date '2035-10-30') AS "Month",
    EXTRACT(YEAR FROM date '2035-10-30') AS "Year";

Kết quả:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Ở đây, tôi đã trả lại ngày trong tháng, ngày trong tuần, ngày trong năm, tháng và năm kể từ ngày.

Xem Cách hoạt động của Extract () trong PostgreSQL để biết thêm ví dụ và danh sách các tên trường có thể được trả về bởi hàm này.

DATE_PART()

DATE_PART() hàm tương đương với EXTRACT() , nhưng với một cú pháp hơi khác.

SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Kết quả:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Hàm này yêu cầu đối số đầu tiên được cung cấp dưới dạng một chuỗi và dấu phẩy phân tách hai đối số thay vì FROM từ khóa.

TO_CHAR()

TO_CHAR() chức năng linh hoạt hơn, trong đó nó có thể được sử dụng để cung cấp nhiều loại đầu ra hơn. Ví dụ:chúng ta có thể sử dụng hàm này để trả về tất cả ngày, tháng và năm trong một trường:

SELECT TO_CHAR(date '2045-12-02', 'Day, DDth Month YYYY');

Kết quả:

 Saturday , 02nd December  2045

Chúng ta có thể sử dụng fm công cụ sửa đổi mẫu để loại bỏ bất kỳ phần đệm nào có thể được áp dụng:

SELECT TO_CHAR(date '2165-04-01', 'fmDay, fmDDth fmMonth YYYY');

Kết quả:

 Monday, 1st April 2165

Cũng lưu ý rằng th công cụ sửa đổi mẫu đủ thông minh để biết liệu st , nd , rd hoặc th nên được thêm vào.

Dưới đây là một ví dụ sử dụng các lệnh gọi khác nhau tới TO_CHAR() để xuất các phần ngày tháng khác nhau trong các trường riêng biệt:

SELECT 
    TO_CHAR(date '2165-04-01', 'fmDay') AS "Day",
    TO_CHAR(date '2165-04-01', 'fmDD') AS "DD",
    TO_CHAR(date '2165-04-01', 'fmMonth') AS "Month",
    TO_CHAR(date '2165-04-01', 'YYYY') AS "YYYY";

Kết quả:

  Day   | DD | Month | YYYY 
--------+----+-------+------
 Monday | 1  | April | 2165

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liệt kê các bảng trong một lược đồ PostgreSQL

  2. Duy trì UUID trong PostgreSQL bằng JPA

  3. Danh sách kiểm tra tuân thủ SOx cho PostgreSQL

  4. Làm thế nào để khai báo các biến cục bộ trong postgresql?

  5. Không thể kết nối PostgreSQL với cơ sở dữ liệu từ xa bằng pgAdmin