您好,欢迎访问一九零五行业门户网

MYSQL自定义函数之返回两个时间的指定类型时差

该函数在mysql下编写,5.1版本测试通过。 函数需要传入三个参数,类型(用于区别应返回时差年、时差月...时差秒),起始时间(用于计算),结束时间(用于计算) 无 delimiter $$create function datebetween (atype int, adatestart datetime, adateend datetime)r
该函数在mysql下编写,5.1版本测试通过。
函数需要传入三个参数,类型(用于区别应返回时差年、时差月...时差秒),起始时间(用于计算),结束时间(用于计算) delimiter $$create function datebetween (atype int, adatestart datetime, adateend datetime)returns bigintbegindeclare aresult bigint default -1;/*入参atype int类型,结果类型 1:年 2:月 3:日 4:小时 5:分钟 6:秒钟 (必须在1-6内,否则结果返回-1)*入参adatestart datetime类型,起始时间 (必须是一个正确的日期参数)*入参adateend datetime类型,结束时间 (必须是一个正确的日期参数)*返回值 bigint类型,返回起始之间与结束时间的指定时差 (成功返回计算出的时差,失败返回-1)*/if adatestart != '' and adateend != '' and atype >=1 and atype <= 6 then case atype when 1 then select timestampdiff(year, adatestart, adateend) into aresult; when 2 then select timestampdiff(month, adatestart, adateend) into aresult; when 3 then select timestampdiff(day, adatestart, adateend) into aresult; when 4 then select timestampdiff(hour, adatestart, adateend) into aresult; when 5 then select timestampdiff(minute, adatestart, adateend) into aresult; when 6 then select timestampdiff(second, adatestart, adateend) into aresult; end case;end if;return(aresult); end$$
select datebetween(0, '2010-01-01 00:00:00', '2010-01-01 10:00:00');select datebetween(1, '2001-01-01', '2010-01-01');select datebetween(2, '2010-01-01', '2010-12-01');select datebetween(3, '2010-01-01', '2010-01-31');select datebetween(4, '2010-01-01 00:00:00', '2010-01-01 10:00:00');select datebetween(5, '2010-01-01 00:00:00', '2010-01-01 10:00:00');select datebetween(6, '2010-01-01 00:00:00', '2010-01-01 10:00:00');select datebetween(7, '2010-01-01 00:00:00', '2010-01-01 10:00:00');
其它类似信息

推荐信息