[SQL] SQL Server 2005의 시간 차이를 찾기 위해 두 날짜를 비교하는 방법, 날짜 조작
SQLSQL Server 2005의 시간 차이를 찾기 위해 두 날짜를 비교하는 방법, 날짜 조작
나는 두 개의 열이 있습니다
job_start job_end
2011-11-02 12:20:37.247 2011-11-02 13:35:14.613
어떻게 작업이 시작되면 작업이 끝난 사이에 경과 한 시간의 원시 양을 찾기 위해 T-SQL을 사용하여 가능한 것입니까?
나는이 시도 :
select (job_end - job_start) from tableA
하지만 이것으로 끝났다 :
1900-01-01 01:14:37.367
해결법
-
==============================
1.참조 DateDiff () 함수를 살펴 보자.
참조 DateDiff () 함수를 살펴 보자.
-- Syntax -- DATEDIFF ( datepart , startdate , enddate ) -- Example usage SELECT DATEDIFF(DAY, GETDATE(), GETDATE() + 1) AS DayDiff SELECT DATEDIFF(MINUTE, GETDATE(), GETDATE() + 1) AS MinuteDiff SELECT DATEDIFF(SECOND, GETDATE(), GETDATE() + 1) AS SecondDiff SELECT DATEDIFF(WEEK, GETDATE(), GETDATE() + 1) AS WeekDiff SELECT DATEDIFF(HOUR, GETDATE(), GETDATE() + 1) AS HourDiff ...
당신은 / 액션에서 볼 여기로 재생할 수 있습니다
-
==============================
2.당신은 분, 초, 일 등의 차이를 얻기 위해 DATEDIFF 기능을 사용할 수 있습니다
당신은 분, 초, 일 등의 차이를 얻기 위해 DATEDIFF 기능을 사용할 수 있습니다
SELECT DATEDIFF(MINUTE,job_start,job_end)
MINUTE 분명히 분의 차이를 반환, 당신은 또한 하루, 시간, 두 번째는, YEAR (도서 전체 목록에 대한 온라인 링크 참조)를 사용할 수 있습니다.
01 : 15 : 00 : 당신이 공상을 얻고 싶은 경우에 당신은 다른 예를 들어 75 분, 다음과 같이 표시 될 수있는이 보여줄 수 0
여기에 SQL Server 2005 및 2008에 모두 해당 작업을 수행하는 코드입니다
-- SQL Server 2005 SELECT CONVERT(VARCHAR(10),DATEADD(MINUTE,DATEDIFF(MINUTE,job_start,job_end),'2011-01-01 00:00:00.000'),114) -- SQL Server 2008 SELECT CAST(DATEADD(MINUTE,DATEDIFF(MINUTE,job_start,job_end),'2011-01-01 00:00:00.000') AS TIME)
-
==============================
3.TIME으로 결과를 전송하고 그 결과는 구간의 지속 시간의 형식 일 것이다.
TIME으로 결과를 전송하고 그 결과는 구간의 지속 시간의 형식 일 것이다.
select CAST(job_end - job_start) AS TIME(0)) from tableA
-
==============================
4.난 당신이 job_start & job_end 사이의 시간 간격을 필요가 있다고 생각합니다.
난 당신이 job_start & job_end 사이의 시간 간격을 필요가 있다고 생각합니다.
이 시도...
select SUBSTRING(CONVERT(VARCHAR(20),(job_end - job_start),120),12,8) from tableA
나는이 함께했다.
01:14:37
-
==============================
5.시작 및 종료 날짜를 선언 @SDATE AS DATETIME 선언
시작 및 종료 날짜를 선언 @SDATE AS DATETIME 선언
TART_DATE AS DATETIME DECLARE @END_-- Set Start and End date SET @START_DATE = GETDATE() SET @END_DATE = DATEADD(SECOND, 3910, GETDATE())
MI : SS : MMM (24H) 형식 - HH의 결과를 가져옵니다 SELECT CONVERT (VARCHAR (12) DATEADD (MS, DATEDIFF (MS, @START_DATE, @END_DATE), 0), (114)) AS TimeDiff
-
==============================
6.는 SQL 서버에서 이것을 시도
는 SQL 서버에서 이것을 시도
SELECT start_date as firstdate,end_date as seconddate ,cast(datediff(MI,start_date,end_date)as decimal(10,3)) as minutediff ,cast(cast(cast(datediff(MI,start_date,end_date)as decimal(10,3)) / (24*60) as int ) as varchar(10)) + ' ' + 'Days' + ' ' + cast(cast((cast(datediff(MI,start_date,end_date)as decimal(10,3)) / (24*60) - floor(cast(datediff(MI,start_date,end_date)as decimal(10,3)) / (24*60)) ) * 24 as int) as varchar(10)) + ':' + cast( cast(((cast(datediff(MI,start_date,end_date)as decimal(10,3)) / (24*60) - floor(cast(datediff(MI,start_date,end_date)as decimal(10,3)) / (24*60)))*24 - cast(floor((cast(datediff(MI,start_date,end_date)as decimal(10,3)) / (24*60) - floor(cast(datediff(MI,start_date,end_date)as decimal(10,3)) / (24*60)))*24) as decimal)) * 60 as int) as varchar(10)) FROM [AdventureWorks2012].dbo.learndate
-
==============================
7.데이터베이스 상영 = 7시 0분 0초 및 ENDTIME = 14시 0분 0초, 두 시간 유형이 있다면. 시간 차이를 얻을 수 귀하의 질의는 다음과 같습니다
데이터베이스 상영 = 7시 0분 0초 및 ENDTIME = 14시 0분 0초, 두 시간 유형이 있다면. 시간 차이를 얻을 수 귀하의 질의는 다음과 같습니다
SELECT TIMEDIFF(Time(endtime ), Time(StartTime )) from tbl_name
데이터베이스의 startDate = 2014년 7월 20일 7시 0분 0초 및 ENDTIME = 2014년 7월 20일 23시 0분 0초 경우에도이 쿼리를 사용할 수 있습니다.
-
==============================
8.다음 코드는 HH에 제공 : mm 형식을.
다음 코드는 HH에 제공 : mm 형식을.
선택 RIGHT (LEFT (job_end- job_start 17) 5)
-
==============================
9.DATEDIFF를 살펴 보자,이 당신을 위해 무엇을 찾고있는 사람이어야한다. 그것은 당신이 비교하고 두 날짜 소요되며, 날짜 단위는 당신의 차이를 원하는 (일, 월, 초 ...)
DATEDIFF를 살펴 보자,이 당신을 위해 무엇을 찾고있는 사람이어야한다. 그것은 당신이 비교하고 두 날짜 소요되며, 날짜 단위는 당신의 차이를 원하는 (일, 월, 초 ...)
-
==============================
10.나는 논리를 다음 사용하고는 놀라운처럼 나를 위해 일한 :
나는 논리를 다음 사용하고는 놀라운처럼 나를 위해 일한 :
CONVERT(TIME, DATEADD(MINUTE, DATEDIFF(MINUTE, AP.Time_IN, AP.Time_OUT), 0))
-
==============================
11.일부 정확하게 시간을 흥분하려고하면, 이것을 시도 (2016 SQL 서버에서 테스트)
일부 정확하게 시간을 흥분하려고하면, 이것을 시도 (2016 SQL 서버에서 테스트)
SELECT DATEDIFF(MINUTE,job_start, job_end)/60.00;
다양한 DATEDIFF의 기능은 다음과 같습니다 :
SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(quarter, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(month, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(dayofyear, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(week, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(hour, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(minute, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(second, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); SELECT DATEDIFF(millisecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
참조 : https://docs.microsoft.com/en-us/sql/t-sql/functions/datediff-transact-sql?view=sql-server-2017
from https://stackoverflow.com/questions/9521434/how-to-compare-two-dates-to-find-time-difference-in-sql-server-2005-date-manipu by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 'dateAdded'에 대한 잘못된 기본값 (0) | 2020.04.19 |
---|---|
[SQL] 데이터베이스를 사용하여 최대 절전 모드에서 다음 시퀀스 값을 가져 (0) | 2020.04.19 |
[SQL] 2008 SQL에 외래 키 관계에서 삭제 정책을 생성? (0) | 2020.04.19 |
[SQL] 형식화 된 목록에서 IDataReader에 가져 오기 (0) | 2020.04.19 |
[SQL] SQL Server에서 "SET ANSI_NULLS ON"은 무엇을 의미합니까? (0) | 2020.04.19 |