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

Cách trích xuất số tuần từ một ngày trong PostgreSQL

Vấn đề:

Bạn muốn lấy số tuần của giá trị ngày hoặc dấu thời gian trong cơ sở dữ liệu PostgreSQL.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên children với dữ liệu trong các cột id , first_name , last_namebirth_date .

id first_name last_name ngày sinh
1 Angela Michelin 2018-01-01
2 Martin Jackson 2002-07-26
3 Justin Clark 2010-12-26
4 Frank Barker 2008-06-08

Đối với mỗi đứa trẻ, hãy lấy họ, tên và số tuần trong ngày sinh của chúng.

Giải pháp 1:

Chúng tôi sẽ sử dụng DATE_PART() hàm số. Đây là truy vấn bạn sẽ viết:

 CHỌN first_name, last_name, DATE_PART ('week', Birth_date) AS Birth_week_numberFROM con; 

Đây là kết quả của truy vấn:

first_name last_name Birth_week_number
Angela Michelin 1
Martin Jackson 30
Justin Clark 51
Frank Barker 23

Thảo luận:

Sử dụng DATE_PART() hàm để truy xuất số tuần từ một ngày trong cơ sở dữ liệu PostgreSQL. Hàm này có hai đối số. Đối số đầu tiên là phần ngày tháng cần truy xuất; chúng tôi sử dụng "week", trả về số tuần (ví dụ:"1" cho tuần đầu tiên trong tháng Giêng, tuần đầu tiên của năm). Bạn có thể sử dụng một phần ngày tháng khác, như ngày, năm, tháng, giờ, phút, doy (số của ngày trong năm), v.v. Bạn có thể tìm hiểu thêm về các phần ngày trong tài liệu PostgreSQL.

Đối số thứ hai là tên cột của kiểu dữ liệu date / timestamp / timestamptz hoặc một biểu thức trả về một trong những kiểu này. (Trong ví dụ của chúng tôi, đó là một cột của ngày kiểu dữ liệu.)

Khi được sử dụng với phần ngày 'tuần', hàm DATE_PART() trả về số tuần dưới dạng số nguyên. Trong ví dụ của chúng tôi, số tuần cho ngày sinh của đứa trẻ cụ thể được hiển thị; chúng tôi đặt tên cho cột này là birth_week_number . Martin Jackson sinh ngày 2002-07-26 , do đó, hàm trả về '30' là số tuần của ngày sinh của anh ấy.

DATE_PART() không chỉ là một cách để lấy số tuần. Một tùy chọn khác là sử dụng EXTRACT() chức năng.

Giải pháp 2:

Chúng tôi sẽ sử dụng EXTRACT() hàm số. Đây là truy vấn bạn sẽ viết:

 CHỌN first_name, last_name, EXTRACT ('tuần' TỪ ngày sinh_ngày) NHƯ trẻ sinh_sứ_ngày 

Hàm này tương tự như DATE_PART() . Sự khác biệt là ở cú pháp:thay vì dấu phẩy giữa tên phần ngày tháng và cột / biểu thức, có từ khóa FROM. Ngoài ra, EXTRACT() chức năng là tiêu chuẩn SQL. Kết quả là như nhau cho cả hai chức năng.


  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:Sáu mảnh không dễ dàng

  2. ComboBox.ValueMember và DisplayMember

  3. Đào tạo PostgreSQL cho MySQLers

  4. Đếm số ngày giữa 2 ngày trong JPA

  5. Làm thế nào để làm mới các thực thể JPA khi cơ sở dữ liệu phụ trợ thay đổi không đồng bộ?