복붙노트

[SQL] 어떻게 시간에 날짜 시간을 캐스팅

SQL

어떻게 시간에 날짜 시간을 캐스팅

나는 CAST 구문을 사용하여 시간에 날짜 시간 필드를 주조하고 있습니다.

select CAST([time] as time) as [CSTTime]

날짜 시간 2015년 3월 19일 00 : 00 : 00.000

현재 출력 : 시간 03 : 05 : 36.0000000

MM : SS하지 밀리 초 또는 0000의 난 단지 HH 필요

어떻게 필터링하거나 HH를 정확한 그것을 캐스팅 : MM : SS 형식.

해결법

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

    1.시간은 SQL 서버에서의 표시 형식으로 저장되지 않습니다. 따라서 사용자의 관점에서, 당신은 어떤 형식이 없다고 말할 수 있습니다. 그것은 저장 형식이 없지만, 평균 사용자로 당신이 정말로 그것을 사용할 수 없기 때문에 물론, 그것은 정확하지 않습니다. 이것은 모든 날짜와 시간 데이터 유형에 대한 사실이다 : 날짜, DateTimeOffset으로, DATETIME2, SMALLDATETIME, 날짜 시간 및 시간.

    시간은 SQL 서버에서의 표시 형식으로 저장되지 않습니다. 따라서 사용자의 관점에서, 당신은 어떤 형식이 없다고 말할 수 있습니다. 그것은 저장 형식이 없지만, 평균 사용자로 당신이 정말로 그것을 사용할 수 없기 때문에 물론, 그것은 정확하지 않습니다. 이것은 모든 날짜와 시간 데이터 유형에 대한 사실이다 : 날짜, DateTimeOffset으로, DATETIME2, SMALLDATETIME, 날짜 시간 및 시간.

    당신은 다음 포맷을해야 할 경우 당신은 시간에하지만 문자에 캐스트 할 필요가 없습니다. 사용 변환 당신이 필요로하는 문자를 얻을 수 있습니다 :

    SELECT CONVERT(char(10), [time], 108) as CSTTime 
    

    당신이 관심이 있다면 여기에 몇 가지 배경 데이터입니다 :

    2000 년에 출판이 글에서 작가는 깊이 방법 SQL 서버 취급 날짜 및 시간에 대해 설명합니다. 중요한 것도이 방법으로 2000과 2015 사이에 SQL 서버는 날짜, 시간 및 내부적으로 날짜 값을 변경 한 경우 나는 의심한다.

    당신이 그것을 모두를 읽을 수 없다 경우 여기에 해당 인용은 다음과 같습니다

    시간이 실제로는 4 바이트 정수로 저장되어 있기 때문에, 정말 데이터 유형의 필수적인 부분으로 형식이 없습니다.

    또한 코드 샘플에 대한 자세한 설명은이 문서를 체크 아웃 할 수 있습니다.

  2. ==============================

    2.당신은 CAST 단순한 사용 시간 (0) 다음 데이터 유형을 달성 할 수있다 :

    당신은 CAST 단순한 사용 시간 (0) 다음 데이터 유형을 달성 할 수있다 :

    SELECT CAST('2015-03-19 01:05:06.289' AS TIME(0))
    

    산출:

    01:05:06

  3. ==============================

    3.SQL 서버 2008 :

    SQL 서버 2008 :

    select cast(MyDate as time) [time] from yourtable
    

    이전 버전 :

    select convert(char(5), MyDate , 108) [time] from yourtable
    

    다른 옵션:

    SELECT CONVERT(VARCHAR(20), GETDATE(), 114)
    

    밀리 초 스택없이 날짜에서 시간을 얻을 수있는 가장 간단한 방법은 다음과 같습니다

    SELECT CONVERT(time(0),GETDATE())
    

    시간과 분

    SELECT substring(CONVERT(VARCHAR, GETDATE(), 108),0,6) AS Time
    
  4. from https://stackoverflow.com/questions/30032915/how-to-cast-the-datetime-to-time by cc-by-sa and MIT license