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

Cách make_date () hoạt động trong PostgreSQL

Trong PostgreSQL, make_date() cho phép bạn tạo một ngày từ các trường năm, tháng và ngày riêng biệt của nó.

Mỗi phần ngày tháng được cung cấp dưới dạng số nguyên và kết quả được trả về dưới dạng ngày .

Cú pháp

Hàm có cú pháp sau:

make_date(year int, month int, day int)

year , monthday là các số nguyên đại diện cho năm, tháng và ngày trong ngày.

Ví dụ

Đây là một ví dụ cơ bản để chứng minh.

SELECT make_date(2020, 07, 25);

Kết quả:

2020-07-25

Và chúng tôi có thể xác minh rằng nó trả về kiểu dữ liệu là ngày với truy vấn sau.

SELECT pg_typeof(make_date(2020, 07, 25));

Kết quả:

date

pg_typeof() hàm trả về kiểu dữ liệu của đối số của nó và vì vậy tôi đã chuyển make_date() như đối số ..

Ngoài phạm vi

Nếu bất kỳ đối số nào nằm ngoài phạm vi giá trị có thể có cho phần ngày của nó, bạn sẽ gặp lỗi "nằm ngoài phạm vi".

SELECT make_date(2020, 17, 25);

Kết quả:

ERROR: date field value out of range: 2020-17-25

Đây lại là tháng 00:

SELECT make_date(2020, 00, 25);

Kết quả:

date field value out of range: 2020-00-25

Truyền chuỗi làm đối số

Tài liệu Postgres nói rằng các đối số phải là số nguyên, nhưng việc chuyển các chuỗi dường như hoạt động (có thể vì chúng được chuyển đổi ngầm thành số nguyên), miễn là mỗi đối số nằm trong phạm vi thích hợp của nó.

SELECT make_date('2020', '07', '25');

Kết quả:

2020-07-25

Một lần nữa, chúng ta có thể sử dụng pg_type() để kiểm tra xem kết quả có thực sự là ngày kiểu dữ liệu.

SELECT pg_typeof(make_date('2020', '07', '25'));

Kết quả:

date

Tuy nhiên, bạn vẫn cần đảm bảo rằng mỗi đối số sẽ hợp lệ sau khi được chuyển đổi thành số nguyên, nếu không bạn sẽ gặp lỗi như sau.

SELECT make_date(2020, 'July', 25);

Kết quả:

ERROR: invalid input syntax for type integer: "July"
LINE 1: SELECT make_date(2020, 'July', 25);

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Barman Cloud - Phần 1:WAL Archive

  2. Kích thước của bảng phân vùng trong PostgreSQL 9.0

  3. Kết hợp hai bảng thành một bảng mới để các hàng được chọn từ bảng kia bị bỏ qua

  4. Createuser:không thể kết nối với cơ sở dữ liệu postgres:FATAL:role tom không tồn tại

  5. Tổng quan về Serial Pseudo-Datatype cho PostgreSQL