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

PostgreSQL cách nối giá trị khoảng thời gian '2 ngày'

Một phần của vấn đề là biểu thức SQL tiêu chuẩn cho các khoảng trích dẫn số, chứ không phải từ khóa. Vì vậy, bạn phải cẩn thận.

select current_date, current_date + interval '2' day;
--
2012-02-21   2012-02-23 00:00:00

Trong PostgreSQL, trích dẫn như "2 ngày" và "2 ngày" cũng hoạt động. Vì vậy, bạn có thể nghĩ rằng '2' || 'days' sẽ tương đương, nhưng không phải.

select current_date, current_date + interval '2' || ' days';
--
2012-02-21   2012-02-21 00:00:02 days

Giải pháp, như A.H. đã nói, là ép chuỗi kết quả thành một khoảng.

Bạn cũng có thể sử dụng một biến thay cho 2. Điều này tạo lịch cho năm 2012.

-- 0 to 365 is 366 days; 2012 is a leap year.
select ('2012-01-01'::date + (n || ' days')::interval)::date calendar_date
from generate_series(0, 365) n;

Tôi sử dụng lần truyền cuối cùng đó cho đến nay, vì ngày + khoảng thời gian trả về dấu thời gian.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhật ký lưu trữ được nén PostgreSQL trong Windows

  2. UUID hoặc SEQUENCE cho khóa chính?

  3. Các cột MySQL với DEFAULT NULL - sự lựa chọn theo kiểu hay là?

  4. Truyền tham số sang DB .execute cho danh sách WHERE IN ... INT

  5. làm thế nào để lưu trữ PostgreSQL jsonb bằng SpringBoot + JPA?