2009-10-20 11 views
8

Mi tabla de contenido se parece a (contentID, título, creado). Necesito obtener todo el contenido creado hace más de 3 semanas.sql consulta para obtener contenido anterior a 3 semanas

La base de datos del servidor Sql, creada es el tipo de fecha y hora.

+0

¿Qué formato es 'created' en? –

+0

Ayudaría si mencionó la base de datos. No estoy seguro de que haya una forma ANSI de hacer esto. – Petros

+0

creado es de tipo de fecha y hora, servidor sql db. – mrblah

Respuesta

33

¿Qué tal:

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

Esto es más fiel a la pregunta. 21 días está bien, obviamente significa lo mismo, pero me parece que es bueno usar la terminología utilizada en la pregunta.

Por ejemplo ... hace un tiempo me pidieron que encuestara un promedio de 1 de cada 50 visitantes a un sitio. Describí esto como una proporción de 0.02, y el cliente no estaba contento. Le señalé al cliente que son lo mismo, pero aprendí mi lección, y ahora si cambio la forma en que se describe algo, me aseguro de comentar al respecto, y preferiblemente no lo cambio en el primero. lugar. Si el cliente quiere 3 semanas, hágalo como 3 semanas, no 21 días.

+0

+1 Buen argumento –

+0

+1, sí, buen punto –

+0

+1 Y cuando quieren cambiarlo a 4 semanas, no quieren hacer los cálculos (supongo que es por eso que tenemos computadoras y programadores). – JeffO

3

en MS SQL 2000/2005 se puede hacer esto

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

Debe intentar mantenerse alejado de las matemáticas implícitas de "fechad (día)". ¿Por qué? A los nuevos tipos de datos DATE en SQL Server 2008 no les gustarán los operadores + o - (habrá un error de tipo de conflicto). Utilicé GETDATE() + - INT durante mucho tiempo y estoy tratando de romper el hábito. –

0

Prueba esto:

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

¿Cómo puedo usar este método para mi pregunta aquí: http://stackoverflow.com/questions/26021347/how-to-get-two-week-prior-data-from-a-table – SearchForKnowledge

Cuestiones relacionadas