반응형
이달의 두 자리 숫자 얻기
정수란 "월"이 있는데, 한 달 동안 두 자리 숫자를 받고 싶습니다.
이것이 제가 시도한 것입니다: 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
반응형
'programing' 카테고리의 다른 글
git repo를 다른 repo의 분기에 병합 (0) | 2023.06.27 |
---|---|
장고 템플릿에서 현재 연도를 표시하는 방법은 무엇입니까? (0) | 2023.06.27 |
Python panders to_excel 'utf8' 코덱이 바이트를 디코딩할 수 없음 (0) | 2023.06.27 |
Vue 구성 요소가 두 번 파괴됨 (0) | 2023.06.27 |
VBA를 통해 어레이 공식 삽입 (0) | 2023.06.27 |