将sql中的两个日期减去hhhh:mm:ss

时间:2013-02-21 10:22:20

标签: sql sql-server-2008

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

而且我不想用hhhh限制小时数。 我有两个约会, date1='1900-01-01 00:00:00.000'date2='1900-01-02 01:00:00.000'。 我想得到:

date2-date1 = '25:00:00.0' 

3 个答案:

答案 0 :(得分: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上的演示

答案 1 :(得分:0)

我不知道您的表格列。这里我有两列,即time1time2,属性为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;

答案 2 :(得分: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