SQL计算两个日期相差多少天数的函数?
SQL是高级的非过程化编程语言,一般针对数据库进行操作。日期函数:(要返回的天数/月数/年数,开始日期,结束日期)还有一些方法:使用DATEDIFF函数可以求两个日期之间相差的天数。
MySQL中的DATEDIFF函数仅需要两个参数 (即要计算相差天数的两个日期),第一个参数应是两个日期中较小的值,以避免出现负值(SQL Server中正好相反)。
在SQL Server中,可以指定该函数返回值所表示的类型(在这个例子中,返回以“日”为单位的差)。下面的解决方案采用了SQL Server的版本:
1 select datediff(day,allen_hd,ward_hd)2 from (3 select hiredate as ward_hd4 from emp5 where ename = 'WARD'6 ) x,7 (8 select hiredate as allen_hd9 from emp10 where ename = 'ALLEN'11 ) yMySQL用户只需去掉该函数的第一个参数,交换一下传递ALLEN_HD和WARD_HD的顺序即可。
mysql两个时间(我有两个字段是datetime类型)相减返回两个时间的小时差,精确到小数点后两位应该怎么写?
在mysql中,这种计算可用TIMESTAMPDIFF函数来解决,但是解决过程中需要将数据多次加工。
1、创建测试表及插入测试数据:
create table test
(time1 datetime,
time2 datetime)
insert into test values ('2015-04-03 17:01:09','2015-06-03 22:09:30')
2、目前要结算time2和time1的时间差,用如下语句:
select round(TIMESTAMPDIFF(second,time1,time2)/3600,2) from test
解读:
首先,先用
select TIMESTAMPDIFF(second,time1,time2) from test
来计算两个时间之间的秒数差。
然后,得到的结果除以3600,即为这两个时间之间的小时数。
最后因为要求保留2位小数,则通过round函数,四舍五入,取出2位小数即可。
sql语句中可以查询两个日期之间的天数么?
select datediff('2009-1-1', '2008-1-1');用datediff函数,第一个参数是截止时间,第二个参数是起始时间不好意思,刚才的是mysql,刚看了下sql的文档发现有点区别- -,sql的话,用下面的形式:DATEDIFF ( datepart , startdate , enddate )所以你要求2个日期之间间隔的天数,这样写:
datediff( dd, '2008/1/1', '2009/1/2' )这里的dd表示计算天数差

