0

我有 2 次start_timeend_timechar 类型。如何找到它们之间的区别?

例如我start_time是上午 10:00 和end_time上午 11:15,那么时差应该显示为 1:15

4

5 回答 5

1

尝试这个:

declare @starttime varchar(10)='10:00 AM'
declare @endtime varchar(10)='11:15 AM'
select cast((datediff(Mi,convert (time,@starttime),
            convert (time,@endtime))/60) as varchar(5))+':'+
       cast((datediff(Mi,convert (time,@starttime),
              convert (time,@endtime))%60) as varchar(5))

结果

1:15
于 2012-08-10T11:33:55.130 回答
0

你可以这样做:

SELECT LEFT(convert(varchar,CAST('11:15 AM AS DATETIME)-CAST('10:00 AM' AS DATETIME),108),5)
于 2012-08-10T11:42:59.117 回答
0

尝试这个:

SELECT left(CONVERT(varchar(12), DATEADD(ms, DATEDIFF
(ms, CAST('10:00 AM' AS DATETIME), CAST('11:15 AM' AS DATETIME)) , 0), 108),5);

结果

01:15

SELECT left(CONVERT(varchar(12), DATEADD(ms, DATEDIFF
(ms, CAST('09:00 AM' AS DATETIME), CAST('11:15 AM' AS DATETIME)) , 0), 108),5);

结果

02:15

看到这个小提琴

于 2012-08-10T11:39:54.673 回答
0

这将在几分钟内为您带来差异:

select DATEDIFF (minute, starttime, endtime)

DATEDIFF

于 2012-08-10T11:31:26.553 回答
0

试试这个查询,它在 MySQL 中运行良好:

select TIME_FORMAT((TIME( STR_TO_DATE( '11:15 PM', '%h:%i %p' ) ) - TIME( STR_TO_DATE( '10:00 PM', '%h:%i %p' ))),'%h:%i');
于 2012-08-10T12:22:42.673 回答