2014-01-09 3 views
0

짝수 또는 고르지 않은 날짜를 기준으로 레코드를 선택할 수있는 방법을 알아 내려고합니다.tsql에서 고르지 또는 고르지 않은 날짜를 기준으로 레코드를 선택하는 방법

나는 4 개의 열이있는 테이블을 가지고 있으며, 하나는 가입 날짜가 있으며 두 날짜를 분모로 사용하여 두 그룹으로 나누고 싶습니다. 따라서 2012 년 12 월 12 일은 균등하지 않으며 2012 년 4 월 3 일에 고르지 않습니다.

이 쿼리를 작성하는 방법을 잘 모르겠다. datepart를보고 있었지만 더 확실한 것이 있는지 확실하지 않았다.

감사

(case 문이 필요하지 않습니다,하지만 당신은 쉽게 원하는 경우가 될 수 당신은 case 문 DATEPART(day, date) % 2 뭔가를 할 수있다 (당신은 당신이 뭔가를 직접 해봤 표시 할 수 있습니다하지 않는 한 지금은)
+0

에서 당신이 [sqlfiddle를 사용하여 문제를 재현 할 수 있다면 그것은 도움이 될 것입니다 ] (http://sqlfiddle.com/). –

+0

'DATEAPART (dd, your_date)'는 날짜를 알려주고 짝수 일 경우 %를 사용합니다. – user2989408

답변

2

힌트 환경에 따라 쿼리를 변경하지 않고도 고르고 고르지 않게 이동하십시오.)

0

DATEPART(dd, your_date)은 날짜의 날짜 부분을 제공해야하며 WHERE 절에서 %가 짝수 인 지 확인해야합니다.

3
SELECT signed_on, DAY(signed_on) % 2 AS uneven 
FROM YourTable 

uneven는 것 중 하나 0 또는

SELECT DAY('2013-01-03') % 2 -- 1 
SELECT DAY('2013-01-02') % 2 -- 0 

방금 ​​결과를 반전 할 수 오히려 고르지 보다 당신의 열 이름을 지정할 경우 1.

SELECT signed_on, POWER(DAY(signed_on) % 2 - 1, 2) AS even 
FROM YourTable 
0

이 같은 일이 정직해야한다 생각 -

SELECT COL,CASE WHEN DAY(COL)%2=0 THEN 'EVEN' ELSE 'UNEVEN' END AS [EVEN_UNEVEN] 
FROM TEST 

샘플 출력을 내 샘플 테이블 -

COL      EVEN_UNEVEN 
2014-01-09 22:39:51.203 UNEVEN 
2014-01-10 22:39:51.210 EVEN 
2014-01-12 22:39:51.210 EVEN 
2014-01-13 22:39:51.213 UNEVEN 
+0

Suyash 귀하의 답변으로 질문을 완료 할 수있었습니다. datepart 함수를 사용할 수 있다는 것을 알았지 만 %를 사용할 수 있는지 확실하지 않았습니다. – dmcs14db

관련 문제