2009-10-20 28 views
8

Bảng nội dung của tôi trông giống như (contentID, tiêu đề, được tạo). Tôi cần lấy tất cả nội dung đã được tạo cách đây hơn 3 tuần.truy vấn sql để nhận nội dung cũ hơn 3 tuần

Cơ sở dữ liệu máy chủ Sql, được tạo là loại ngày giờ.

+0

định dạng gì là 'created' trong? –

+0

Nó sẽ giúp bạn nếu bạn đề cập đến cơ sở dữ liệu. Tôi không chắc chắn có một cách ANSI để làm điều này. – Petros

+0

được tạo là loại datetime, db máy chủ sql. – mrblah

Trả lời

33

Làm thế nào về:

select contentID, title, created 
from content 
where created < dateadd(week,-3,getdate()); 

này dính gần gũi hơn với các câu hỏi. 21 ngày là tốt, rõ ràng có nghĩa là như nhau, nhưng tôi thấy rằng nó là tốt để sử dụng các thuật ngữ được sử dụng trong câu hỏi.

Ví dụ: một thời gian ngắn, tôi được yêu cầu khảo sát trung bình 1 trong 50 khách truy cập vào một trang web. Tôi mô tả điều này như là một tỷ lệ 0,02, và khách hàng không hài lòng. Tôi đã chỉ ra cho khách hàng rằng họ giống nhau, nhưng tôi đã học được bài học của mình, và bây giờ nếu tôi thay đổi cách mà một cái gì đó được mô tả, tôi đảm bảo rằng tôi nhận xét hiệu ứng đó, và tốt nhất là không thay đổi nó trong lần đầu tiên địa điểm. Nếu khách hàng muốn 3 tuần, hãy làm như 3 tuần, không phải 21 ngày.

+0

+1 Đối số tốt –

+0

+1, vâng, điểm tốt –

+0

+1 Và khi họ muốn thay đổi nó thành 4 tuần, họ không muốn làm toán (tôi đoán đó là lý do tại sao chúng tôi có máy tính và lập trình viên). – JeffO

3

trong MS SQL 2000/2005, bạn có thể làm điều này

Select 
    contactID, 
    title, 
    created 
from 
    content 
where 
    created < getdate()-21 
+0

Bạn nên cố gắng tránh xa toán học "dateadd (ngày)" ngầm định. Tại sao? Các kiểu dữ liệu DATE mới trong SQL Server 2008 sẽ không giống như các toán tử + hoặc - (sẽ có một lỗi xung đột kiểu). Tôi đã sử dụng GETDATE() + - INT trong một thời gian dài và tôi đang cố gắng tự mình phá vỡ thói quen đó. –

0

Hãy thử điều này:

select contentID, title, created from content 
where created < dateadd(day,-21,getdate()) 
+0

Tôi làm cách nào để sử dụng phương pháp này cho câu hỏi của mình tại đây: http://stackoverflow.com/questions/26021347/how-to-get-two-week-prior-data-from-a-table – SearchForKnowledge

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