programing

날짜를 YYYYMM 형식으로 변환

closeapi 2023. 7. 15. 10:09
반응형

날짜를 YYYYMM 형식으로 변환

값 =을(를) 선택합니다.201301

select getdate(), cast(datepart(year, getdate()) as varchar(4))+cast(datepart(MONTH, getdate()) as varchar(2))

그것은 돌아옵니다.20131

이것을 하는 일반적인 방법은 무엇입니까?

SELECT CONVERT(nvarchar(6), GETDATE(), 112)
SELECT LEFT(CONVERT(varchar, GetDate(),112),6)

그것이 오래된 주제인 것을 알지만, 만약 당신의SQL server버전이 2012년보다 높습니다.

FORMAT 기능을 선택할 수 있는 또 다른 간단한 옵션이 있습니다.

SELECT FORMAT(GetDate(),'yyyyMM')

squlifidle

문자열/바하 대신 정수 연산을 사용하는 더 효율적인 방법은 다음과 같습니다. 문자열 유형보다는 int 유형이 됩니다.

SELECT YYYYMM = (YEAR(GETDATE()) * 100) + MONTH(GETDATE())

연도의 오른쪽에 두 개의 0을 추가한 다음 추가된 두 개의 0에 월을 추가합니다.

MS SQL 2014(최종적으로 날짜 시간에 대한 사용자 지정 형식 문자열을 사용할 수 있음)를 사용할 수 없는 경우 이 방법이 원하는 것을 얻을 수 있는 적절한 방법입니다.

갖기 위해yyyymm대신에yyyym당신은 이 작은 속임수를 사용할 수 있습니다.

select 
 right('0000' + cast(datepart(year, getdate()) as varchar(4)), 4)
 + right('00' + cast(datepart(month, getdate()) as varchar(2)), 2)

제품의 일부를 구입하는 것보다 빠르고 안정적입니다.convert(..., 112).

다음과 같은 다양한 형식으로 날짜를 변환할 수 있습니다.

CONVERT(NVARCHAR(10), DATE_OF_DAY, 103) => 15/09/2016
CONVERT(NVARCHAR(10), DATE_OF_DAY, 3) => 15/09/16

구문:

CONVERT('TheTypeYouWant', 'TheDateToConvert', 'TheCodeForFormating' * )
  • 코드는 정수입니다. 여기서 3은 세기가 없는 세 번째 포맷입니다. 세기를 원한다면 코드를 103으로 변경하십시오.

당신의 경우, 저는 다음과 같이 nvarchar(6)로 크기를 변환하고 제한했습니다.

CONVERT(NVARCHAR(6), DATE_OF_DAY, 112) => 201609

자세한 내용은 http://www.w3schools.com/sql/func_convert.asp 에서 확인하십시오.

형식(GETDATE(), 'yyyyMM')을 'YYYMM'으로 선택합니다.

이것은 간단한 형식입니다.

convert(varchar(6),getdate(),112)

이러한 유형의 값에 대한 형식 수정을 얻으려면 전체 열에 적용하려는 경우 다음 작업을 수행해야 합니다.

에서 To_DATE(변수-which-format-u-wanna-change, 'YYYMM')를 선택합니다;

그러나 출력을 사용하여 열 u_u를 추가하는 방법을 모르겠습니다.

1개월째니까 기대되는 값을 받고 있습니다.다음 답변에 따라 월(1 -> 01)을 0으로 패드해야 합니다.T-SQL에서 int를 제로 패딩 문자열로 변환하려면 어떻게 해야 합니까?

언급URL : https://stackoverflow.com/questions/14217751/convert-date-to-yyyymm-format

반응형