programing

이달의 두 자리 숫자 얻기

powerit 2023. 6. 27. 22:36
반응형

이달의 두 자리 숫자 얻기

정수란 "월"이 있는데, 한 달 동안 두 자리 숫자를 받고 싶습니다.

이것이 제가 시도한 것입니다: DATEPART(mm, @Date)

1월부터 9월까지 한 자리 수를 반환합니다. SQL Server 2008을 사용하고 있습니다.

제안할 사람?

기능.

FORMAT(date,'MM') 

두 자리 숫자로 작업을 수행합니다.

그것을 하는 다른 방법들이 있습니다.

  • RTRIM 사용 및 범위 지정:

맘에 들다

SELECT RIGHT('0' + RTRIM(MONTH('12-31-2012')), 2); 
  • 날짜를 텍스트로 변환한 후 하위 문자열을 사용하여 월 부분만 추출

맘에 들다

SELECT SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)

피들 참조

이것을 얻을 수 있는 다른 방법이 있을 수 있습니다.

최종 Dave는 SQL 번호에 뒤에 0을 추가하는 방법에 대한 몇 가지 예를 포함한 좋은 기사를 가지고 있습니다.

한 가지 방법은 사용하는 것입니다.RIGHT함수를 사용하면 문을 다음과 같이 만들 수 있습니다.

SELECT RIGHT('00' + CAST(DATEPART(mm, @date) AS varchar(2)), 2)

또 다른 간단한 속임수:

SELECT CONVERT(char(2), cast('2015-01-01' as datetime), 101) -- month with 2 digits
SELECT CONVERT(char(6), cast('2015-01-01' as datetime), 112) -- year (yyyy) and month (mm)

출력:

01
201501

변환(문자(2), 날짜 가져오기(), 101)

의 대안DATEPART

SELECT LEFT(CONVERT(CHAR(20), GETDATE(), 101), 2)

먼저 varchar에 주조하여 값이 1과 9 사이에 있는지 확인하여 앞에 0을 추가합니다.

select case when DATEPART(month, getdate()) between 1 and 9 
then '0' else '' end + cast(DATEPART(month, getdate()) as varchar(2))

나에게 가장 빠른 해결책은

DATE_FORMAT(CURDATE(),'%m')

간단히 사용할 수 있습니다.

SELECT RIGHT('0' + CAST(MONTH(@Date) AS NVARCHAR(2)), 2)

시도:

select right ('0'+convert(nvarchar(2), DATEPART(mm, getdate())),2 )

제 방식은 다음과 같습니다.

right('0'+right(datepart(month,[StartDate]),2),2)

내부 '오른쪽' 기능의 이유는 SQL이 수학적 추가로 수행하는 것을 방지하기 위한 것이며, 이로 인해 다시 한 자리 수가 남게 됩니다.

SELECT REPLACE(CONVERT(varchar, MONTH(GetDate()) * 0.01), '0.', '')

언급URL : https://stackoverflow.com/questions/14975925/get-2-digit-number-for-the-month

반응형