2012-01-20 4 views
1

저는 sqlserver에서 새로 왔으며 방금 배우기 시작했고 질문이 있습니다. ** 지난 6 개월 동안 추가 된 모든 행을 가져올 수있는 SQL 쿼리가 필요합니다. 테이블 'users'에서 날짜는 'joined'필드에 있지만 UNIX 타임 스탬프 형식의 경우검색 할 SQL 쿼리

** 그리고 다른 SQL 쿼리를 위와 동일하게 만들고 싶지만 결과가 'activate'

select * from users where time_of_post is like '07/**/2011' 

** = 애니데이 그러나 나는 바로 그것을 구현은`t : 각 행에 '예'

내가 그 코드를 시도합니다.

미리 도움을 주셔서 감사합니다. 사용하려는 어떤

답변

1
select * 
from users 
where datediff(mm, time_of_post, getdate()) <= 6 

DATEDIFF() 기능입니다, 오늘의 날 (GETDATE())과 저장 날짜 (time_of_post)의 차이를 얻는다. 그 값이 6 개월보다 작거나 같으면 (첫 번째 매개 변수 인 mm으로 표시), 그 값이 찾고있는 값이어야합니다.

편집 : 당신이 UPDATE이 논리를 사용하고자하는 경우

, 당신은 같은 것을 할 것 :

update users 
set activation = 'yes' 
where datediff(mm, time_of_post, getdate()) <= 6 
and activation <> 'yes' 
+0

을 다음 두 번째 쿼리가 있어야한다 : (사용자에 삽입 여기서 datediff (mm, time_of_post, getdate()) <= 6) 여기서 ??? –

+0

@ R.Vector 정말로, 사용자 기록을 업데이트하려고하는 것 같지 않습니까? 내 편집을 참조하십시오. 그게 네가 원하는지 알려줘. –