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

Bắt đầu từ một ngày trong PostgreSQL

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

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

Khi trích xuất ngày từ một ngày, bạn cần xác định nghĩa của từ “ngày” mà bạn muốn nói. Ví dụ:“ngày trong tuần”, “ngày trong tháng”, “ngày trong năm”, v.v.

Ví dụ 1:Ngày trong tuần

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

Sử dụng dow trả về ngày trong tuần là Chủ Nhật (0) thành Thứ Bảy (6).

SELECT 
  extract(dow from date '2020-12-27') AS "Day of week",
  to_char(date '2020-12-27', 'Day') AS "Day Name";

Kết quả:

 Day of week | Day Name  
-------------+-----------
           0 | Sunday   

Trong ví dụ này, tôi cũng trả lại tên ngày để không có sự nhầm lẫn về ngày thực sự được trả lại.

Tôi sẽ sử dụng cùng một ngày cho các ví dụ còn lại, vì vậy tôi không cần phải in ra tên ngày trong các ví dụ đó.

Ví dụ 2:Ngày ISO trong tuần

Sử dụng isodow trả lại ngày trong tuần là Thứ Hai (1) thành Chủ Nhật (7).

SELECT extract(
    isodow from date '2020-12-27'
    ) AS "ISO Day of week";

Kết quả:

 ISO Day of week 
-----------------
               7

Lý do tôi sử dụng Sunday trong các ví dụ này là vì nó làm nổi bật sự khác biệt giữa isodowdow .

Ví dụ 3:Ngày trong tháng

Khi sử dụng dấu thời gian hoặc ngày giá trị, day trả về ngày trong tháng (1 - 31).

SELECT extract(
    day from date '2020-12-27'
    ) AS "Day of month";

Kết quả:

 Day of month 
--------------
           27

Khi sử dụng khoảng thời gian giá trị, day kết quả trường là số ngày được trả lại.

SELECT extract(
    day from interval '32 weeks'
    ) AS "Number of days";

Kết quả:

 Number of days 
----------------
            224

Ví dụ 4:Ngày trong năm

Sử dụng doy trả về ngày trong năm (1 - 365/366).

SELECT extract(
    doy from date '2020-12-27'
    ) AS "Day of year";

Kết quả:

 Day of year 
-------------
         362

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

date_part() hàm có thể được sử dụng thay cho extract() hàm số. Đây là một ví dụ.

SELECT date_part(
    'doy', timestamp '2020-12-27'
    ) AS "Day of year";

Kết quả:

 Day of year 
-------------
         362

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgreSQL - trong so với bất kỳ

  2. PostgreSQL chậm trên một bảng lớn với các mảng và nhiều bản cập nhật

  3. PostgreSQL có thể lập chỉ mục các cột mảng không?

  4. Có gì mới trong PostgreSQL 11

  5. Trả về nhiều trường dưới dạng bản ghi trong PostgreSQL với PL / pgSQL