2012-04-18 35 views

Trả lời

68

Cast nó để timestamp(0) hoặc timestamptz(0) để loại bỏ giây phân đoạn:

SELECT now()::timestamp(0); 

Giống như @karlgold nhận xét, đây vòng đầy đủ giây, và các phần phân đoạn không được lưu trữ nếu bạn tiếp tục hoạt động với kiểu dữ liệu này.

Sử dụng date_trunc() để biết thêm các nhu cầu cụ thể.

SELECT date_trunc('second', now()::timestamp); 

cắt ngắn (lá giây không đổi). Thao tác tiếp theo có thể tái giới thiệu các phân số giây.

Tất nhiên, bạn có thể kết hợp cả hai - lần này loại bỏ phần thứ hai cũng như:

SELECT date_trunc('minute', now())::timestamp(0); 

Nhưng lưu ý rằng gán giá trị này cho một cột hoặc biến của một kiểu dữ liệu khác nhau có thể dẫn đến một số khác bài tập được gán.

+10

Lưu ý rằng dấu thời gian (0) và dấu thời gian (0) sẽ tròn thay vì cắt ngắn. Sử dụng date_trunc nếu bạn muốn giữ lại dấu thời gian còn lại. – karlgold

+0

@karlgold nhận xét rất quan trọng cảm ơn bạn – Brettski

+0

@saul: Chỉnh sửa được đề xuất của bạn đã bị từ chối nhưng bạn đã đúng. Tôi áp dụng làm rõ của bạn, nhờ –

Các vấn đề liên quan