[SQL] SQL 서버 DATETIME 포맷
SQLSQL 서버 DATETIME 포맷
SQL Server를 공부하는 것은 필자가 확실하지 않다 무언가가 :
값이있는 날짜 필드 : 2012-02-26 09 : 34 : 00.000
나는 사용하여 테이블 밖으로 선택하는 경우 :
CAST(dob2 AS VARCHAR(12) ) AS d1
그것은 그것을로 포맷 : 2012년 2월 26일
내가 그의 방법 또는 왜 SQL 서버의 확실치은 그런 식으로 날짜 시간 형식을 지정합니다. 당신이 DATETIME2를 사용하는 경우에는 그렇지 않습니다 - 아무도 이유를 알고?
해결법
-
==============================
1.기본 날짜 형식은 데이터베이스 서버의 언어 설정에 따라 달라집니다. 당신은 또한 같은 세션 당을 변경할 수 있습니다 :
기본 날짜 형식은 데이터베이스 서버의 언어 설정에 따라 달라집니다. 당신은 또한 같은 세션 당을 변경할 수 있습니다 :
set language french select cast(getdate() as varchar(50)) --> févr 8 2013 9:45AM
-
==============================
2.이 시도:
이 시도:
select convert(varchar, dob2, 101) select convert(varchar, dob2, 102) select convert(varchar, dob2, 103) select convert(varchar, dob2, 104) select convert(varchar, dob2, 105) select convert(varchar, dob2, 106) select convert(varchar, dob2, 107) select convert(varchar, dob2, 108) select convert(varchar, dob2, 109) select convert(varchar, dob2, 110) select convert(varchar, dob2, 111) select convert(varchar, dob2, 112) select convert(varchar, dob2, 113)
참조 : http://msdn.microsoft.com/en-us/library/ms187928.aspx
http://www.w3schools.com/sql/func_convert.asp
-
==============================
3.호환성 지원은 말한다 쿼리는 이전 동작에 의존하는 경우 호환성 수준 (110)에서, 시간에 CAST 및 CONVERT 운영 및 DATETIME2 데이터 유형에 대한 기본 스타일 적은 110보다 호환성 수준을 사용하거나 명시 적으로 영향을받는 쿼리에서 0 스타일을 지정, 항상 121입니다 .
호환성 지원은 말한다 쿼리는 이전 동작에 의존하는 경우 호환성 수준 (110)에서, 시간에 CAST 및 CONVERT 운영 및 DATETIME2 데이터 유형에 대한 기본 스타일 적은 110보다 호환성 수준을 사용하거나 명시 적으로 영향을받는 쿼리에서 0 스타일을 지정, 항상 121입니다 .
기본적 DATETIME2 의한 수단 (121)으로서 포맷 VARCHAR CAST이다. 예를 들어; (아래)와 COL1 COL2 포맷 (끝에 0 이외) 같다
SELECT CONVERT(varchar, GETDATE(), 121) col1, CAST(convert(datetime2,GETDATE()) as varchar) col2, CAST(GETDATE() as varchar) col3
SQL 뿐인 DEMO
--Results COL1 | COL2 | COL3 2013-02-08 09:53:56.223 | 2013-02-08 09:53:56.2230000 | Feb 8 2013 9:53AM
대신 CAST의 CONVERT를 사용하는 경우 참고로, 당신은 MSDN 여기에 나열된 특정 형식을 지정하는 세 번째 매개 변수를 사용할 수 있습니다
-
==============================
4.MS SQL 서버에서 당신은 할 수 있습니다 :
MS SQL 서버에서 당신은 할 수 있습니다 :
SET DATEFORMAT ymd
-
==============================
5.
case when isdate(inputdate) = 1 then convert(datetime, cast(inputdate,datetime2), 103) else case when isdate(inputdate) = 0 then convert(datetime, cast(inputdate,datetime2), 103)
-
==============================
6.이 (112, 114)의 나의 마음에 드는 사용하는 것입니다
이 (112, 114)의 나의 마음에 드는 사용하는 것입니다
select (convert(varchar, getdate(), 112)+ replace(convert(varchar, getdate(), 114),':','')) as 'Getdate() 112 + 114 or YYYYMMDDHHMMSSMSS'
결과:
20171016083349100
from https://stackoverflow.com/questions/14769547/sql-server-datetime-format by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] INSERT INTO는 그렇지 않은 경우 SQL 서버에 존재 (0) | 2020.07.02 |
---|---|
[SQL] SQL 행이 PHP 존재하는지 확인 (0) | 2020.07.02 |
[SQL] 대 'PATINDEX' '와 같은'SQL 문자열 비교 속도 (0) | 2020.07.02 |
[SQL] 어떻게 분할 쉼표는 MySQL을 저장 프로 시저의 텍스트를 분리 (0) | 2020.07.01 |
[SQL] 중복이 SQL과 테이블에 위에 각 그룹에서 3 값을 선택하는 방법 [중복] (0) | 2020.07.01 |