T-SQL에서 날짜/시간을 문자열로 변환하는 방법
이 질문을 여기서 찾을 수 없어서 놀랐어요.
날짜 시간 변수가 있으며 다른 문자열에 추가할 수 있도록 문자열로 변환하려고 합니다.날짜 시간으로 쉽게 변환할 수 있는 형식으로 해주세요.
이거 어떻게 해?
(날짜 부분과 시간 부분을 원합니다.)
다음 쿼리는 현재 날짜/시간을 가져와 문자열로 변환합니다.다음 형식으로yyyy-mm-dd hh:mm:ss(24h)
SELECT convert(varchar(25), getdate(), 120)
하기 위해서는 여러 가지 방법이 있다.datetime
줄에 매다.한 가지 방법은 다음과 같습니다.
SELECT convert(varchar(25), getdate(), 121) – yyyy-mm-dd hh:mm:ss.mmm
데모 참조
다음은 모든 변환 목록이 있는 웹 사이트입니다.
에 덧붙여CAST
그리고.CONVERT
SQL Server 2012 이상을 사용하는 경우 FORMAT 함수를 사용하여 이전 답변의 함수를 변환합니다.DATETIME
based type을 문자열로 지정합니다.
다시 변환하려면 반대쪽을 사용하십시오.PARSE
또는TRYPARSE
기능들.
포맷 스타일은 에 기초하고 있습니다.NET(ToString() 메서드의 문자열 형식 옵션과 유사)으로 문화에 대응한다는 장점이 있습니다.예:
DECLARE @DateTime DATETIME2 = SYSDATETIME();
DECLARE @StringResult1 NVARCHAR(100) = FORMAT(@DateTime, 'g') --without culture
DECLARE @StringResult2 NVARCHAR(100) = FORMAT(@DateTime, 'g', 'en-gb')
SELECT @DateTime
SELECT @StringResult1, @StringResult2
SELECT PARSE(@StringResult1 AS DATETIME2)
SELECT PARSE(@StringResult2 AS DATETIME2 USING 'en-gb')
결과:
2015-06-17 06:20:09.1320951
6/17/2015 6:20 AM
17/06/2015 06:20
2015-06-17 06:20:00.0000000
2015-06-17 06:20:00.0000000
SELECT CONVERT(varchar, @datetime, 103) --for UK Date format 'DD/MM/YYYY'
101 - US - MM/DD/YYY
108 - 시간 - HH:MI: SS
112 - 날짜 - YYYMMDD
121 - ODBC - YYY-MM-DD HH:MI: SS.FFF
20 - ODBC - YYY-MM-DD HH:MI: SS
자신의 요건과 사용하고 있는 버전에 따라 3가지 방법이 있습니다.
방법은 다음과 같습니다.
1) Convert 사용
DECLARE @DateTime DATETIME = GETDATE();
--Using Convert
SELECT
CONVERT(NVARCHAR, @DateTime,120) AS 'myDateTime'
,CONVERT(NVARCHAR(10), @DateTime, 120) AS 'myDate'
,RIGHT(CONVERT(NVARCHAR, @DateTime, 120),8) AS 'myTime'
2) 캐스트 사용 (SQL Server 2008 이후)
SELECT
CAST(@DateTime AS DATETIME2) AS 'myDateTime'
,CAST(@DateTime AS DATETIME2(3)) AS 'myDateTimeWithPrecision'
,CAST(@DateTime AS DATE) AS 'myDate'
,CAST(@DateTime AS TIME) AS 'myTime'
,CAST(@DateTime AS TIME(3)) AS 'myTimeWithPrecision'
3) 고정길이 문자 데이터형 사용
DECLARE @myDateTime NVARCHAR(20) = CONVERT(NVARCHAR, @DateTime, 120);
DECLARE @myDate NVARCHAR(10) = CONVERT(NVARCHAR, @DateTime, 120);
SELECT
@myDateTime AS 'myDateTime'
,@myDate AS 'myDate'
를 사용할 수 있습니다.convert
Microsoft SQL Server에서 날짜를 문자열로 변환합니다.사용되는 구문의 예는 다음과 같습니다.
SELECT convert(varchar(20), getdate(), 120)
위의 경우 다음 형식의 문자열로 현재 날짜와 시간이 반환됩니다.YYYY-MM-DD HH:MM:SS
24시간 안에.
문의 끝에 있는 숫자를 여러 개로 변경하면 반환되는 문자열 형식이 변경됩니다.이러한 코드 목록은 MSDN의 CAST 및 CONVERT 레퍼런스 섹션에서 확인할 수 있습니다.
t-sql의 CAST 구문과 CONVERT 구문을 확인합니다.
http://msdn.microsoft.com/en-us/library/ms187928.aspx
아래를 시험해 보세요.
DECLARE @myDateTime DATETIME
SET @myDateTime = '2013-02-02'
-- Convert to string now
SELECT LEFT(CONVERT(VARCHAR, @myDateTime, 120), 10)
많은 사람들이 대답했지만, 가장 간단한 해결책이 빠진 것 같습니다.
SQL SERVER (2012+)에는 다음과 같이 DATETIME2에 대한 암묵적인 문자열이 있습니다.
"datetime2에서 지원되는 문자열 리터럴 형식" 섹션을 참조하십시오.
OPs 질문에 명시적으로 답변하려면:
DECLARE @myVar NCHAR(32)
DECLARE @myDt DATETIME2
SELECT @myVar = @GETDATE()
SELECT @myDt = @myVar
PRINT(@myVar)
PRINT(@myDt)
출력:
Jan 23 2019 12:24PM
2019-01-23 12:24:00.0000000
첫 「」: 「」)myVar
은로 값을 .'2019-01-23 12:24:00.0000000'
뿐만 아니라.포맷만 하면 됩니다.Jan 23 2019 12:24PM
SERVER 시 기본 설정 PRINT
은, 「 」, 「 」에 있습니다(myVer)
='2019-01-23 12:24:00.0000000'
저장 프로시저에서는 다음과 같은 작업을 합니다.
convert(varchar(10), StartingDate) AS 'StartingDate'
언급URL : https://stackoverflow.com/questions/15029860/how-to-convert-a-datetime-to-string-in-t-sql
'programing' 카테고리의 다른 글
숫자에서 0을 제거하는 중 (0) | 2023.04.22 |
---|---|
ORDER BY 절이 뷰, 인라인 함수, 파생된 테이블, 하위 쿼리 및 일반 테이블 식에 유효하지 않습니다. (0) | 2023.04.17 |
Excel VBA를 사용하여 MS Access 테이블로 데이터 내보내기 (0) | 2023.04.17 |
디렉토리가 bash로 마운트되었는지 확인합니다. (0) | 2023.04.17 |
VBA에서 전원 쿼리를 자동화하는 방법 (0) | 2023.04.17 |