[SQL] T-SQL의 날짜 함수를 사용하여 가장 가까운 분에 가까운 시간을 반올림
SQLT-SQL의 날짜 함수를 사용하여 가장 가까운 분에 가까운 시간을 반올림
SQL 서버 2008 년, 나는 날짜 열은 2008 년에 바람직 기존의 기능을 가장 가까운 시간 및 분 단위에서 반올림 좀하고 싶습니다.
07 :이 항목 값 2007년 9월 22일 15 38.850 출력과 같을 것이다 :
2007-09-22 15:08 -- nearest minute
2007-09-22 15 -- nearest hour
해결법
-
==============================
1.
declare @dt datetime set @dt = '09-22-2007 15:07:38.850' select dateadd(mi, datediff(mi, 0, @dt), 0) select dateadd(hour, datediff(hour, 0, @dt), 0)
반환
2007-09-22 15:07:00.000 2007-09-22 15:00:00.000
바로 위의 결과는 문제의 요구 생산, 초와 분을 자릅니다. @OMG 조랑말이 지적 당신이 아래로 / 반올림하려는 경우, 당신은 각각 반 분 반 시간을 추가 할 수 있습니다, 다음 잘라 :
select dateadd(mi, datediff(mi, 0, dateadd(s, 30, @dt)), 0) select dateadd(hour, datediff(hour, 0, dateadd(mi, 30, @dt)), 0)
당신은 얻을 것이다 :
2007-09-22 15:08:00.000 2007-09-22 15:00:00.000
날짜 데이터 형식 SQL Server 2008의 추가되기 전에, 나는 단지 날짜를 얻을 수있는 날짜에서 시간 부분을 잘라내는 위의 방법을 사용합니다. 아이디어는 문제의 날짜와 (00.000 : 00 암시 1900-01-01 00 시전 0) 시간에 고정 된 지점 사이의 일 수를 결정하는 것입니다 :
declare @days int set @days = datediff(day, 0, @dt)
00 : 00.000 그리고 당신에게 00 시간 세트 원래의 날짜를 제공 시간에 고정 된 시점에 일의 해당 번호를 추가 :
select dateadd(day, @days, 0)
이상 간결 :
select dateadd(day, datediff(day, 0, @dt), 0)
다른 날짜 부분 (예를 들어 시간, 마일)를 사용하여 그에 따라 작동합니다.
-
==============================
2.당신의 예에서와 같이 "둥근"아래로. 이 날짜의 VARCHAR 값을 반환합니다.
당신의 예에서와 같이 "둥근"아래로. 이 날짜의 VARCHAR 값을 반환합니다.
DECLARE @date As DateTime2 SET @date = '2007-09-22 15:07:38.850' SELECT CONVERT(VARCHAR(16), @date, 120) --2007-09-22 15:07 SELECT CONVERT(VARCHAR(13), @date, 120) --2007-09-22 15
-
==============================
3.이 질문은 고대이며 허용 및 대체 응답이 실현. 나는 또한 내 대답은 질문의 절반에 응답 할 것을 깨닫게하지만, 사람이 여전히 가장 가까운 분으로 라운드에 원하는과에 대한 단 하나의 함수를 사용하여 날짜 호환 값이 :
이 질문은 고대이며 허용 및 대체 응답이 실현. 나는 또한 내 대답은 질문의 절반에 응답 할 것을 깨닫게하지만, 사람이 여전히 가장 가까운 분으로 라운드에 원하는과에 대한 단 하나의 함수를 사용하여 날짜 호환 값이 :
CAST(YourValueHere as smalldatetime);
시간 초를 들어, 위의 제프 오가타의 대답 (허용 대답)를 사용합니다.
-
==============================
4.선택 변환 (CHAR (8), DATEADD (MINUTE, DATEDIFF (분, 0, GETDATE), 0), (108))를 시간
선택 변환 (CHAR (8), DATEADD (MINUTE, DATEDIFF (분, 0, GETDATE), 0), (108))를 시간
00 초 내림 것
from https://stackoverflow.com/questions/6666866/t-sql-datetime-rounded-to-nearest-minute-and-nearest-hours-with-using-functions by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 더 정확 - 카운트 (열 이름) 대 (*) 계산? [복제] (0) | 2020.03.28 |
---|---|
[SQL] 어떻게 특정 인덱스를 사용하는 포스트 그레스를 강요하는 걸까? (0) | 2020.03.28 |
[SQL] SQL 날짜에서만 연도와 월을 얻기 (0) | 2020.03.28 |
[SQL] 여러 테이블에서 기본 키를 참조 외래 키? (0) | 2020.03.28 |
[SQL] 사용자와 SQL Server에서 로그인의 차이 (0) | 2020.03.28 |