2011-12-13 1 views
9

어떻게 datetime 열을 월 단위로 선택합니까?MS SQL은 월별 datetime을 선택합니까?

TABLE A 
TITLE MY_DATETIME 
blah 2011-03-26 05:44:43.213 

SELECT * 
FROM TABLE A 
WHERE MY_DATETIME = "August" 
+4

WHERE month (MY_DATETIME) = 8 ' – Raihan

+0

@MGA : SQL Server 2008이 있습니다. Ref : http://msdn.microsoft.com/en-us/library/ms187813.aspx – Raihan

+0

@MGA : 정말요? 거기에 영원히 있었 http://msdn.microsoft.com/en-us/library/ms187813.aspx 및 http://msdn.microsoft.com/en-us/library/aa933239(SQL.80).aspx – gbn

답변

18
SELECT * 
FROM TABLE A 
WHERE DATEPART(month, MY_DATETIME) = 8 

는 또는 덜 안정적 based on language 설정 :

... 
WHERE DATENAME(month, MY_DATETIME) = 'August' 
+0

어쩌면, 거기에 더 나은 해결책이 문제가 설정되어 있지만 이것이 인덱스 스캔 올바른 방법입니다. –

+0

@Igor : 달에 대한 요구 사항은 날짜의 범위 체크가 가능하지 않다는 것을 의미합니다. 가난한 질문이긴하지만 – gbn

0
SELECT * 
FROM TABLE A 
WHERE DATENAME(MONTH, MY_DATETIME) = 'August' 
+0

이것은 이상한 경우에 깨집니다. http://stackoverflow.com/a/1500018/27535 – gbn

0

내가 대신 DATEPARTEXTRACT 기능을 사용합니다. DATEPART 함수가 내 mysql에 존재하지 않습니다.