1

当小时数可能大于 24 时,我想减去两个日期并得到 hhhh:mm:ss

而且我不想通过 hhhh 来限制小时数。我有两个日期, date1='1900-01-01 00:00:00.000'date2='1900-01-02 01:00:00.000'。我想得到:

date2-date1 = '25:00:00.0' 
4

3 回答 3

2

您只能在字符数据类型中使用它,因为数据类型时间范围从 00:00:00.0000000 到 23:59:59.9999999

DECLARE @date1 datetime = '19000101 00:00:00.000',
        @date2 datetime = '19000102 01:00:00.000'

SELECT CAST(DATEDIFF(hour, @date1, @date2) AS nvarchar(5))+ ':00:00.0'

SQLFiddle上的演示

于 2013-02-21T12:15:12.133 回答
0

此外,在 T-SQL 中有一个DATEDIFF函数:

DATEDIFF ( datepart , startdate , enddate )

例如:

SELECT DATEDIFF(year, '2005-12-31 23:59:59', '2006-01-01 00:00:00');

在 oracle 中,您可以看到此链接很有帮助 - http://www.akadia.com/services/ora_date_time.html

在 MySQL - https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-sub

于 2013-02-21T10:37:22.007 回答
0

我不知道你的表格列..这里我有两列time1,即time2属性为DATE..下面是减去的查询......

select to_char(Time1,'DD-MM-YYYY HH24:MM:SSAM'),to_char(Time2,'DD-MM-YYYY HH12:MM:SSAM'),(Time1-Time2)*1440 from Table_Name;

于 2013-02-21T10:28:27.327 回答