DB2에서 이러한 데이터를 어떻게 나열합니까?모두 MMM-YYYY 연도 조합
FiscalMonthYear
----------
Dec-2010
Jan-2011
Feb-2011
..
Nov-2011
맨 처음 MM-YYYY 조합은 항상 '12월'+이다 '-'+ CHAR (현재 연도 - 1)
DB2에서 이러한 데이터를 어떻게 나열합니까?모두 MMM-YYYY 연도 조합
FiscalMonthYear
----------
Dec-2010
Jan-2011
Feb-2011
..
Nov-2011
맨 처음 MM-YYYY 조합은 항상 '12월'+이다 '-'+ CHAR (현재 연도 - 1)
첫째, 나는 (포맷) 텍스트에 가입하지 않는 것이 좋습니다 이 열 (특히 언어에 매우 의존적 인 항목).
은 일반적으로 다음과 같이 월/년에 가입하려고 :
SELECT columnList
FROM tableA
JOIN tableB
ON tableB.numericMonth = MONTH(tableA.date)
AND tableB.numericYear = YEAR(tableA.date)
가이 같은 분리 컬럼보다는에 가입이 날짜 열을 갖는 것이 바람직 할 것이라는 점을 주목해야한다 있지만. 제 (분리, 숫자) 범위를 생성
은 매우 간단하다 :
WITH date_range (month, year) as (SELECT 12, 2011
FROM sysibm/sysdummy1
UNION ALL
SELECT month - 1, 2012
FROM date_range
WHERE month > 1)
잘하면 당신이 정말로 문은 다음과 뭔가를 검색해야하는 시점에서, 실제 날짜에 (가능한 경우)에 합류하게 된 것입니다,하지만 :
SELECT columnList
FROM tableA
WHERE tableDate BETWEEN '2011-12-01' and '2012-11-30'
달의 (긴) 이름을 반환 DB2의 MONTHNAME()
기능도 있습니다. 다음 결과를 생성합니다 :
December
November
October
September
August
July
June
May
April
March
February
January
... 처음 세 문자를 가져 오기 위해 어느 부분 문자열을 사용할 수 있습니까? 반환 된 값은 언어에 따라 달라집니다. (실행중인 작업의 시스템 설정에 따라)입니다. 따라서 조인 열에 사용하는 것은 끔찍한 일입니다. 따라서 월 이름을 사용하지 않는 것이 좋습니다. 가입 조건 - 달 번호 사용).
감사합니다! 웬일인지 WITH date_range .. 코드를 실행할 때 오류가 계속 발생합니다. SQL0104N 예기치 않은 토큰 ")"이 "ange WHERE month> 1"다음에 발견되었습니다. 예상 토큰은 다음을 포함 할 수 있습니다 : ")". SQLSTATE = 42601' 또한 sysibm/sysdummy1을 sysibm.sysdummy1로 바 꾸었습니다. – Connection
'.' 대'/'구분 기호에 대해 걱정하지 마십시오. 이것은 '시스템'대 'SQL'규칙입니다.). (DB2) 시스템에서 문제가없는 정확한 진술을 사용했기 때문에 왜 토큰 오류가 발생하는지 알지 못합니다. 'date_range'또는 뭔가에 대한 UDF가 있습니까? –
아니요, date_range에 대한 UDF가 없습니다. 내가해야하니? – Connection
이러한 결과에 참여할 계획입니까 아니면 디스플레이 용입니까? –
@ X-Zero 결과에 합류했습니다 – Connection