2011-12-13 4 views
0

우리는 SQL Server 2005를 사용하고 있으며 두 개의 정수를 다른 정수에 추가하려고합니다. 지금 우리는 날짜 필드의 월 및 연도를 합산합니다. 이는 우리가 원하는 것이 아닙니다. 대신, 우리는 그것들을 함께 덧붙이고 싶지만 정수는 유지하고 싶습니다.TSQL 문의 다른 정수에 두 개의 정수를 추가하는 좋은 방법은 무엇입니까?

는 여기에 우리가 지금 가지고있는 작업은 다음과 같습니다

SELECT 
     YEAR(MeetingDate) + MONTH(MeetingDate) AS DateGroup 

우리는 DateGroup는 20118, 20119, 201110, 201111 등이 일의 좋은 방법을 배우려고 노력 읽고 싶습니다.

답변

4

그것은 쉽게, 20118보다는 즉, 앞에 0이 하나 자리 개월을 사용 201108을 고려

select 
    year(MeetingDate) * case when month(MeetingDate) < 10 then 10 else 100 end 
    + month(MeetingDate) as DateGroup 
+0

완벽하고 고맙습니다. Guffa (그리고 응답 한 모든 사람들) – larryq

2

캐스트하여 정수 :

select 
    year(MeetingDate) * 100 + month(MeetingDate) as DateGroup 

그렇지 않으면 당신이 다른 몇 달을 치료해야 varchar에 추가 한 다음 togehter에 추가하십시오.

select cast(cast(year(MeetingDate) as varchar(4)) + 
      cast(month(MeetingDate) as varchar(2)) as int) as dategroup 
+0

이는 int가 아닌 varchar를 반환합니다. – Guffa

+0

@ Guffa - 나는 그 질문의 일부를 놓쳤습니다. 그 달의'0'을 제거하는 문제에 더 집중했다. 업데이트 된 답변 그러나 나는 정말로 그가 가치에 '0'을 유지하기 위해 최선을 다할 것이라고 생각합니다. –

관련 문제