2011-10-12 2 views
2

Customer 테이블에서 값 (DateUpdated)이 업데이트되지 않은 모든 레코드로 전자 메일을 보내야하는 MVC 응용 프로그램을 만들고 있습니다.SQL Server에서 레코드 선택 6 개월 이상

Customer 표는 다음과 같습니다

SELECT * FROM users WHERE DateLastUpdated >= NOW() - INTERVAL 6 MONTH 

나는이 T-SQL에서 작성하고 MVC3에서이 작업을 수행하는 방법 :

ID (PK) 
Name 
Address 
DateLastUpdated 

지금 나는이 MySQL의 쿼리가? 도와주세요!

답변

7

귀하의 질문은 다음과 같아야합니다

SELECT * FROM users WHERE DateLastUpdated >= DateAdd(month, -6, getdate())

또한, 당신은 예를 들어, 단지 날짜가 남아 있도록 시간 부분을 제거 할 수 있습니다 2011-04-12 00:00:00.000 당신은이를 사용할 수 있습니다

SELECT * 
FROM users 
WHERE DateLastUpdated >= DateAdd(Month, -6, Cast(Floor(Cast(GetDate() as Float)) as DateTime)) 
+0

베리처럼 뭔가를 할 수 있습니다! :-) – codingguy3000

+0

@Barry, 이제이 쿼리가 생겼고 MVC 앱에서 매일 실행해야합니다. 어떻게해야할까요? –

+0

왜 MVC에서 실행해야합니까? 간단한 SQL 에이전트 작업 또는 SSRS 보고서를 사용하여이 작업을 예약 할 수 있습니다. – codingbadger

1

날짜는 기능을 추가 할 수 있습니다 날짜

SELECT * FROM users WHERE DateLastUpdated >= DateAdd(month, -6, getDate()) 
당신은 더 많은 정보 here 찾을 수 있습니다

추가하고 뺄 :

0

시도 :

SELECT * FROM users 
WHERE DateLastUpdated >= DATEADD(Month, -6, GETDATE()) 
0
SELECT * FROM users 
WHERE DateLastUpdated >= dateadd(month, -6, datelastupdated) 

dateadd 함수를 사용하십시오.

1

이것은 보충 물과 같습니다. DateLastUpdated에 시간/분/초/밀리 초 구성 요소가있는 경우 일부 레코드를 생략 할 수 있습니다. 당신은 항상 당신이 모든 명성을 독차지해야 할 이유는 내 대답했다

SELECT * FROM users WHERE CONVERT(DATETIME, CONVERT(NVARCHAR(10), DateLastUpdated, 102), 102) >= DateAdd(month, -6, getdate()) 
0
SELECT * FROM users WHERE DateLastUpdated >= DATE_SUB(now(), INTERVAL 6 MONTH) 
관련 문제