您的位置:

SQL计算时间差

一、Datediff函数

Datediff函数可以计算两个日期之间的时间差。它接受三个参数,分别是时间单位、开始日期和结束日期。例如,要计算两个日期之间相差的天数:

SELECT DATEDIFF(day, '2022-01-01', '2022-01-03') AS DayDiff;

这条SQL语句的执行结果为2,即2022年1月3日距离2022年1月1日相差两天。

除了day单位,Datediff函数还支持其他时间单位,如week、month、year等。这些时间单位可以让我们计算不同粒度的时间差。

二、Datepart函数

Datepart函数可以从一个日期或时间值中提取指定的部分,如年、月、日、小时、分钟等等。例如,要从一个日期中提取它的月份:

SELECT DATEPART(month, '2022-01-01') AS Month;

这条SQL语句的执行结果为1,即2022年1月份的月份是1。

借助Datepart函数,我们可以计算两个日期之间的时间差,如计算相差的月份、小时、分钟等等。

三、Timediff函数

Timediff函数可以计算两个时间之间的时间差。它接受两个时间参数,分别是开始时间和结束时间。例如,要计算两个时间之间相差的小时数:

SELECT TIMEDIFF('12:00:00', '10:30:00') AS HourDiff;

这条SQL语句的执行结果为1小时30分钟,即12点减去10点半相差1小时30分钟。

四、Timestampdiff函数

Timestampdiff函数可以计算两个日期或时间之间的时间差。它接受三个参数,分别是时间单位、开始日期或时间、结束日期或时间。例如,要计算两个日期之间相差的小时数:

SELECT TIMESTAMPDIFF(hour, '2022-01-01 12:00:00', '2022-01-01 13:30:00') AS HourDiff;

这条SQL语句的执行结果为1,即2022年1月1日下午1点30分距离上午12点相差1小时。

五、Dateadd函数

Dateadd函数可以对日期或时间进行加法运算,从而得到一个新的日期或时间值。它接受三个参数,分别是时间单位、时间间隔和日期或时间值。例如,要在一个日期上加上10天:

SELECT DATEADD(day, 10, '2022-01-01') AS NewDate;

这条SQL语句的执行结果为2022年1月11日,即2022年1月1日加上10天。

除了day单位,Dateadd函数还支持其他时间单位,如week、month、year等。这些时间单位可以让我们进行更灵活的日期和时间计算。