yyyyMMddhh
(2017092018
) 문자열을 SQL Server 2012에서 Date
으로 변환하는 방법은 무엇입니까?SQL Server에서 날짜 문자열로 변환하는 방법
T-SQL을 사용하지 않고 문장을 INSERT
절에 넣을 수 있습니까?
INSERT INTO [dbo].[Table](SomeColumn)
VALUES (CONVERT(DATETIME, '2017092018', 'yyyyMMddhh'));
yyyyMMddhh
(2017092018
) 문자열을 SQL Server 2012에서 Date
으로 변환하는 방법은 무엇입니까?SQL Server에서 날짜 문자열로 변환하는 방법
T-SQL을 사용하지 않고 문장을 INSERT
절에 넣을 수 있습니까?
INSERT INTO [dbo].[Table](SomeColumn)
VALUES (CONVERT(DATETIME, '2017092018', 'yyyyMMddhh'));
예
Declare @S varchar(50)='2017092018'
Select convert(datetime,left(@S,8)) + convert(datetime,right(@S,2)+':00')
반환
2017-09-20 18:00:00.000
는 2012+ 경우에, 나는 당신이 예상치 못한 값을 가질 경우에 대비 try_convert()를 제안했다.
+1이어야한다. 모순 된 답변을 게시하고 싶지 않았지만 다른 접근 방법을 생각해 냈습니다. dateadd (hour, convert (int, right (@s, 2)), 왼쪽 (@s, 8)) –
@SeanLange 게시하십시오! 그것의 아름다움입니다 ... 옵션 –
고마워요,하지만 거기에 변환 문자열을 날짜로 마스크 = ( –
당신은 DATETIMEFROMPARTS
사용할 수 있습니다
DECLARE @d NVARCHAR(10)='2017092018';
SELECT DATETIMEFROMPARTS(LEFT(@d,4),SUBSTRING(@d,5,2),SUBSTRING(@d,7,2),RIGHT(@d,2),0,0,0) ;
편집 :
또 다른 옵션 :
DECLARE @S varchar(10)='2017092018'
SELECT CAST(LEFT(@s, 8) AS DATETIME) + RIGHT(@s,2)/24.0;
,113,
다른 방법 :이 시간 앞에 공백을 추가
DECLARE @val VARCHAR(25) = '2017092018';
SELECT CONVERT(DATETIME,STUFF(@val, 9, 0, ' ') + ':00')
은 다음 분 값을 :00
을 추가합니다.
이미 +1 ... 허용 된 답변이어야합니다. 처음 생각에 붙어 있습니다. –
@JohnCappelletti 고양이를 다듬는 여러 가지 방법. – Tanner
'T-SQL을 사용하지 않고 문장을 INSERT 절에 넣을 수 있습니까? '- 여기 묻는 것이 확실하지 않습니다 ... – Siyual
sql에서 문자열 매개 변수로 함수를 작성하고 리턴하십시오. 날짜. 다른 사용자 정의 날짜 형식으로 함수를 실행할 수도 있습니다. – OnurBulbul
문자열은 항상 정확한 형식입니까? 항상 같은 수의 문자입니까? – Siyual