2012-08-25 34 views
13

Tôi cần hiển thị một số dữ liệu nếu đó là - dữ liệu mới - dữ liệu cập nhật giả sử, tôi sẽ dựa vào các dữ liệu này từ cột publishdate và cột được cập nhật nơi publishdate và updateddate dấu thời gian ? . Vậy làm thế nào để tính toán ngày nếu nó là một ngày mới?oracle sql date không muộn hơn hôm nay

+0

Không rõ bạn muốn gì. Bạn có thể mô tả tốt hơn không? – codingbiz

+0

Tôi có một cột publishdate và tôi muốn hiển thị dữ liệu được xuất bản trong ngày này và không hiển thị dữ liệu đã được đăng hôm qua cũng như trước đó – sasori

Trả lời

34

Đối với 24 giờ qua:

Where publish_date >= sysdate -1 

hoặc bất cứ lúc nào ngày hôm nay (nửa đêm về phía trước)

where publish_date >= trunc(sysdate) 

Nếu đây là một bảng lớn, tôi giả sử bạn có một chỉ mục trên ngày xuất bản. Nếu bạn sử dụng trunc (publish_date), nó có thể không sử dụng được chỉ mục (chưa được kiểm tra, nhưng chạy một kế hoạch giải thích để chắc chắn).

+1

wuhuuuu! hoạt động hoàn hảo +1 –

+0

sysdate -1 ... đẹp: D – GedankenNebel

8

Hãy thử

Where TRUNC(sysdate) = TRUNC(publish_date) 

sysdate lợi nhuận ngày hôm nay với thời gian. Các TRUNC loại bỏ thời gian một phần

+0

Tôi không muốn làm hỏng -1, nhưng như @tbone đã giải thích, sử dụng 'TRUNC (publish_date) 'có lẽ là một ý tưởng tồi và một kẻ giết người thực hiện trong tình huống này –

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