날짜 yyyy-mm-dd를 정수 YYYYMM으로 변환


17

@dateb를 변환하는 방법은 무엇입니까?

SET @dateb = dateadd(month, datediff(month, 0, getdate()) - 3, 0)

2014-04-04날짜의 정수로 반환201404

감사

답변:


19

버전 2012 이상에서는 format함수를 사용하여 연도 및 월을 가져 와서 int로 캐스트 할 수 있습니다.

2012 이전 버전에서는 convert함수를 사용 하여 서식을 지정한 다음 int로 캐스트 할 수 있습니다 .

declare @dateb datetime
set @dateb = getdate()

select cast(format(@dateb,'yyyyMM') as int) --2012 or higher
select cast(convert(varchar(6),@dateb,112) as int) -- all versions


13

아마도 조금 더 깔끔 할 것입니다.

SELECT YEAR(@dateb)*100 + MONTH(@dateb);

1
나는 이것을 진심으로 동의합니다. 정수 서브 필드가있는 날짜가 있습니다. 정수를 원합니다. 왜 지구상에서 문자열 처리를합니까?
Ross Presser


-1

다른 방법 :

DECLARE @PeriodToCalculate_DATE [DATE] ='2016-02-29'

SELECT 
   CAST(DATEPART(YYYY,@PeriodToCalculate_DATE) AS [CHAR](4))
       + RIGHT('0' + CAST(DATEPART(M,@PeriodToCalculate_DATE) AS [VARCHAR](2)),2)  
       + RIGHT('0' + CAST(DATEPART(D,@PeriodToCalculate_DATE) AS [VARCHAR](2)),2);

제공 : 20160229

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.