사용자 도구

사이트 도구


mssqlserver:basic

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
mssqlserver:basic [2019/04/16 19:30]
kwon37xi [FORMAT]
mssqlserver:basic [2020/08/24 17:16] (현재)
kwon37xi [String to DATETIME]
줄 116: 줄 116:
 </code> </code>
  
 +===== FORMAT =====
 +  * [[https://docs.microsoft.com/ko-kr/sql/t-sql/functions/format-transact-sql?view=sql-server-2017|FORMAT(Transact-SQL) | Microsoft Docs]]
 +  * 시간 포맷시 ''.'' 혹은 '':'' 을 사용하려면 ''\.'' ''\:'' 형태로 Escape하지 않으면 null 리턴된다.
 +  * 시간을 나타내는 포맷 문자열은 ''hh''이다. *대문자 아님*.
 +<code sql>
 +SELECT FORMAT(cast('07:35' as time), N'hh\.mm');  --> returns 07.35  
 +SELECT FORMAT(cast('07:35' as time), N'hh\:mm');  --> returns 07:35  
 +</code>
 +
 +===== String to DATETIME =====
 +  * 정형화 돼 있는 날짜형식 문자열을 DATETIME 타입으로 변경하는 것은 ''CAST''를 사용한다. 
 +  * [[https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-ver15|CAST 및 CONVERT]]
 +  * 그렇지 못한 custom type 은 문자열을 모두 쪼개서 [[https://docs.microsoft.com/en-us/sql/t-sql/functions/datetimefromparts-transact-sql?view=sql-server-ver15|DATETIMEFROMPARTS]]/[[https://docs.microsoft.com/en-us/sql/t-sql/functions/datetime2fromparts-transact-sql?view=sql-server-ver15|DATETIME2FROMPARTS]]를 사용한다.
 +  * [[https://rextester.com/LTBUB91960|임의의 문자열을 DATETIME, DATETIME2 로 변경하기, Sql Server - rextester]]
 +<code sh>
 +-- 2019-09-20 18:51:47
 +DECLARE @d NVARCHAR(14)='20170920185147';
 + 
 +SELECT 
 +   DATETIMEFROMPARTS (LEFT(@d, 4),  SUBSTRING(@d, 5,2), SUBSTRING(@d,7 ,2), SUBSTRING(@d, 9, 2) , SUBSTRING(@d, 11, 2), RIGHT(@d, 2), 0) as "with_var",
 +   DATETIMEFROMPARTS (LEFT('20170920185147', 4),  SUBSTRING('20170920185147', 5,2), SUBSTRING('20170920185147',7 ,2), SUBSTRING('20170920185147', 9, 2) , SUBSTRING('20170920185147', 11, 2), RIGHT('20170920185147', 2), 0) as "with_literal",
 +   DATETIME2FROMPARTS (LEFT('20170920185147', 4),  SUBSTRING('20170920185147', 5,2), SUBSTRING('20170920185147',7 ,2), SUBSTRING('20170920185147', 9, 2) , SUBSTRING('20170920185147', 11, 2), RIGHT('20170920185147', 2), 0, 0) as "dt2"
 +;
 +</code>
  
mssqlserver/basic.1555410610.txt.gz · 마지막으로 수정됨: 2019/04/16 19:30 저자 kwon37xi