복붙노트

[SQL] SQL 서버 DATETIME 포맷

SQL

SQL 서버 DATETIME 포맷

SQL Server를 공부하는 것은 필자가 확실하지 않다 무언가가 :

값이있는 날짜 필드 : 2012-02-26 09 : 34 : 00.000

나는 사용하여 테이블 밖으로 선택하는 경우 :

CAST(dob2 AS VARCHAR(12) ) AS d1

그것은 그것을로 포맷 : 2012년 2월 26일

내가 그의 방법 또는 왜 SQL 서버의 확실치은 그런 식으로 날짜 시간 형식을 지정합니다. 당신이 DATETIME2를 사용하는 경우에는 그렇지 않습니다 - 아무도 이유를 알고?

해결법

  1. ==============================

    1.기본 날짜 형식은 데이터베이스 서버의 언어 설정에 따라 달라집니다. 당신은 또한 같은 세션 당을 변경할 수 있습니다 :

    기본 날짜 형식은 데이터베이스 서버의 언어 설정에 따라 달라집니다. 당신은 또한 같은 세션 당을 변경할 수 있습니다 :

    set language french
    select cast(getdate() as varchar(50))
    -->
    févr 8 2013 9:45AM
    
  2. ==============================

    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. ==============================

    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. ==============================

    4.MS SQL 서버에서 당신은 할 수 있습니다 :

    MS SQL 서버에서 당신은 할 수 있습니다 :

    SET DATEFORMAT ymd
    
  5. ==============================

    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. ==============================

    6.이 (112, 114)의 나의 마음에 드는 사용하는 것입니다

    이 (112, 114)의 나의 마음에 드는 사용하는 것입니다

    select (convert(varchar, getdate(), 112)+ replace(convert(varchar, getdate(), 114),':','')) as 'Getdate() 
    
    112 + 114 or YYYYMMDDHHMMSSMSS'
    

    결과:

    20171016083349100

  7. from https://stackoverflow.com/questions/14769547/sql-server-datetime-format by cc-by-sa and MIT license