2013-06-28 78 views
10

Cách nhận ngày và giờ chỉ tối đa phút, không phải giây, từ dấu thời gian trong PostgreSQL. Tôi cần ngày cũng như thời gian.Cách lấy ngày và thời gian từ dấu thời gian trong truy vấn chọn PostgreSQL?

Ví dụ:

2000-12-16 12:21:13-05 

Từ này tôi cần

2000-12-16 12:21 (no seconds and milliseconds only date and time in hours and minutes) 

Từ một dấu thời gian với lĩnh vực múi giờ, nói update_time, làm thế nào để tôi nhận được ngày cũng như thời gian như trên sử dụng PostgreSQL chọn truy vấn.

Hãy giúp tôi.

+1

Er ... ' SELECT fieldname FROM table'. Chi tiết xin vui lòng, điều này không có ý nghĩa nhiều như được viết. Phiên bản PostgreSQL? Chương trình khách hàng/trình điều khiển bạn đang sử dụng để truy cập PostgreSQL? Mã hiển thị sự cố bạn đang gặp phải? –

+0

hãy thử một số cách sau: http://www.postgresql.org/docs/9.1/static/functions-datetime.html – davek

Trả lời

14

Có rất nhiều chức năng ngày thời gian có sẵn với postgresql:

Xem danh sách ở đây

http://www.postgresql.org/docs/9.1/static/functions-datetime.html

ví dụ

SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40'); 
Result: 16 

Đối với định dạng bạn có thể sử dụng sau đây:

http://www.postgresql.org/docs/9.1/static/functions-formatting.html

ví dụ

select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI') ... 
+0

Vui lòng xem mã đã chỉnh sửa của tôi. – user2515189

19

Để có được date từ một timestamp (hoặc timestamptz) một cách đơn giản cast là nhanh nhất:

SELECT now()::date 

Bạn nhận được các date theo địa phương múi giờ của bạn một trong hai cách.

Nếu bạn muốn text ở định dạng nhất định, hãy truy cập to_char() như @davek provided.

Nếu bạn muốn cắt (làm tròn xuống) giá trị của một timestamp đến một đơn vị thời gian, sử dụng date_trunc():

SELECT date_trunc('minute', now()); 
2

này nên là đủ:

select now()::date, now()::time 
    , pg_typeof(now()), pg_typeof(now()::date), pg_typeof(now()::time) 
Các vấn đề liên quan