SQL Server方言\n语法:datediff(datepart,startdate,enddate)\n\n1、datepart,规定应在日期的哪一部分计算差额\n\n日期 缩写\n\nyear yy/yyyy\n\nquarter qq/q\n\nMonth mm/m\n\nday dd/d\n\nHour hh/h\n\nminute mi,n\n\nsecond ss,s\n\n注意:是后面日期减去前面的日期(enddate-startdate)\n\n1.参数是 yyyy的话,统计相差的年份,截取前4位进行统计\nselect datediff(yyyy,‘20210928’,‘20200121’)test\n–select datediff(year,‘20210928’,‘20200121’)test\n–select datediff(yy,‘20210928’,‘20200121’)test\n\n2、参数是 qq时,统计相差的季度\nselect datediff(qq,‘20210928’,‘20200121’)test\n–select datediff(q,‘20210928’,‘20200121’)test\n–select datediff(quarter,‘20210928’,‘20200121’)test\n\n3、参数是 mm的时候,统计相差的月份,截取前6位进行统计\nselect datediff(mm,‘20210928’,‘20200121’)test\n–select datediff(m,‘20210928’,‘20200121’)test\n–select datediff(month,‘20210928’,‘20200121’)test\n\n4、参数是 dd的时候,统计相差的天数\nselect datediff(dd,‘20210928’,‘20200121’)test\n–select datediff(day,‘20210928’,‘20200121’)test\n–select datediff(d,‘20210928’,‘20200121’)test\n\n5、参数是 hh的时候,统计相差的小时\nselect datediff(hour,‘20211112 10:00:00’,‘20211112 00:00:00’)test_hour\n,datediff(hh,‘20211112 10:00:00’,‘20211112 00:00:00’)test_hh\n\n6、参数是 mi的时候,统计相差的分钟数\nselect datediff(minute,‘20211112 10:00:00’,‘20211112 00:00:00’)test_minute\n,datediff(mi,‘20211112 10:00:00’,‘20211112 00:00:00’)test_mi\n,datediff(n,‘20211112 10:00:00’,‘20211112 00:00:00’)test_n\n\n7、参数是 ss的时候,统计相差的秒数\nselect datediff(second,‘20211112 10:00:00’,‘20211112 00:00:00’)test_second\n,datediff(ss,‘20211112 10:00:00’,‘20211112 00:00:00’)test_ss\n,datediff(s,‘20211112 10:00:00’,‘20211112 00:00:00’)test_s\n\n亲测,第一个参数写day也可以取到两个日期之间的天数差值。但是当一个是date格式,一个是timestamp格式的时候,也不需要将cast(timestamp格式的字段 as date)强制转换。