IT박스

문자열을 날짜 T-SQL로 변환하는 방법은 무엇입니까?

itboxs 2020. 9. 24. 07:39
반응형

문자열을 날짜 T-SQL로 변환하는 방법은 무엇입니까?


T-SQL에서 문자열을 날짜로 어떻게 변환 할 수 있습니까?

내 테스트 케이스는 문자열입니다. '24.04.2012'


CONVERT(datetime, '24.04.2012', 104)

트릭을해야합니다. 자세한 내용은 여기를 참조하십시오. CAST 및 CONVERT (Transact-SQL)


Microsoft SQL 날짜 형식

CONVERT(DateTime, DateField, 104)

데이터베이스가 MS SQL Server 2012 이상이라고 가정하면 작동하는 솔루션이 있습니다. 기본 문에는 인라인 try-parse가 포함됩니다.

SELECT TRY_PARSE('02/04/2016 10:52:00' AS datetime USING 'en-US') AS Result;

프로덕션 버전에서 구현 한 내용은 다음과 같습니다.

UPDATE dbo.StagingInputReview
 SET ReviewedOn = 
     ISNULL(TRY_PARSE(RTrim(LTrim(ReviewedOnText)) AS datetime USING 'en-US'), getdate()),
 ModifiedOn = (getdate()), ModifiedBy = (suser_sname())
 -- Check for empty/null/'NULL' text
 WHERE not ReviewedOnText is null 
   AND RTrim(LTrim(ReviewedOnText))<>''
   AND Replace(RTrim(LTrim(ReviewedOnText)),'''','') <> 'NULL';

ModifiedOn 및 ModifiedBy 열은 내부 데이터베이스 추적 용도로만 사용됩니다.

다음 Microsoft MSDN 참조를 참조하십시오.


CONVERT는 작동하지만 실제로 사용해서는 안됩니다. SQL-Server에서 문자열 값을 구문 분석하는 이유를 자문해야합니다. 이 작업이 일부 데이터를 수동으로 수정하는 일회성 작업 인 경우 다음 번에는 해당 데이터를 얻지 못할 것입니다. 이것은 괜찮지 만 응용 프로그램이이를 사용하는 경우 변경해야합니다. 가장 좋은 방법은 "날짜"데이터 유형을 사용하는 것입니다. 이것이 사용자 입력이라면 더 나쁩니다. 그런 다음 먼저 클라이언트에서 몇 가지 확인을 수행해야합니다. SQL-Server가 날짜를 예상하는 문자열 값을 전달하려면 항상 ISO 형식 ( 'YYYYMMDD')을 사용할 수 있으며 자동으로 변환되어야합니다.


당신이 사용할 수있는:

SELECT CONVERT(datetime, '24.04.2012', 103) AS Date

참조 : CAST 및 CONVERT (Transact-SQL)


CONVERT(DateTime, ExpireDate, 121) AS ExpireDate

필요한 것을 수행 할 것입니다.

2012-04-24 00:00:00.000

참고 URL : https://stackoverflow.com/questions/10304373/how-convert-string-to-date-t-sql

반응형