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

Trích xuất năm từ một ngày trong PostgreSQL

Trong PostgreSQL, bạn có thể sử dụng extract() hàm để lấy năm từ một ngày.

Bạn cũng có thể sử dụng date_part() chức năng để làm điều tương tự.

Ví dụ 1:Hàm trích xuất ()

Dưới đây là một ví dụ về việc sử dụng extract() chức năng trích xuất năm từ một ngày.

SELECT extract(
    year from date '1974-12-16'
    ) AS "Year";

Kết quả:

 Year 
------
 1974

Đây là một ví dụ khác sử dụng dấu thời gian hiện tại.

SELECT extract(
    year from current_timestamp
    ) AS "Year";

Kết quả:

 Year 
------
 2020

Ví dụ 2:Hàm date_part ()

Dưới đây là một ví dụ về việc sử dụng date_part() chức năng thay thế.

SELECT date_part(
    'year', date '1974-12-16'
    ) AS "Year";

Kết quả:

 Year 
------
 1974

Lưu ý cú pháp hơi khác một chút. Cũng là 'year' tham số phải là một giá trị chuỗi (tức là nó được đặt trong dấu ngoặc kép).

Ví dụ 3:Năm ISO

Bạn có tùy chọn chỉ định năm đánh số tuần theo ISO 8601.

Mỗi năm đánh số theo tuần ISO 8601 bắt đầu bằng thứ Hai của tuần có chứa ngày 4 tháng Giêng, do đó vào đầu tháng Giêng hoặc cuối tháng Mười Hai, năm ISO có thể khác với năm Gregorian (tùy thuộc vào năm được đề cập).

Dưới đây là một ví dụ chứng minh điều này.

SELECT 
  extract(
    isoyear from date '2024-12-29'
    ) AS "2024-12-29",
  extract(
    isoyear from date '2024-12-30'
    ) AS "2024-12-30";  

Kết quả:

 2024-12-29 | 2024-12-30 
------------+------------
       2024 |       2025

Vì vậy, cả hai ngày đều nằm dưới năm 2024 trong lịch Gregory, nhưng chúng thuộc một năm ISO khác.

date_part() hàm cũng chấp nhận 'isoyear' như một đối số.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nâng cấp PostgreSQL từ 9.6 lên 10.0 trên Ubuntu 16.10

  2. Sử dụng COALESCE để xử lý các giá trị NULL trong PostgreSQL

  3. Tạo chỉ mục duy nhất một phần với sqlalchemy trên Postgres

  4. String -> java.util.Date -> java.sql.Date (có dấu thời gian)

  5. Dữ liệu mới không tồn tại trong cột mảng Rails trên Postgres