该函数在MYSQL下编写,5.1版本测试通过。

函数需要传入三个参数,类型(用于区别应返回时差年、时差月...时差秒),起始时间(用于计算),结束时间(用于计算)

1.[代码]DateBetween函数

DELIMITER $$

CREATE FUNCTION DateBetween

(AType INT, ADateStart DATETIME, ADateEnd DATETIME)

RETURNS BIGINT

BEGIN

DECLARE 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$$

2.[代码]测试用例

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');

mysql 自定义函数 时间差_MYSQL自定义函数之返回两个时间的指定类型时差相关推荐

  1. 算法训练 加法运算(你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示)

    问题描述 你的表妹正在学习整数的加法,请编写一个程序来帮助她学习.该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来.要求: ...

  2. mysql 自定义函数教程_MySQL自定义函数

    MySQL自定义函数 函数与存储过程类似,也是一组预先编译好的SQL语句的集合,但是存储过程可以有0个或多个返回,函数就只能有一个返回 创建函数 #语法 参数列表包含两部分 参数名和参数类型 #函数体 ...

  3. rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)

    在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...

  4. mysql 自定义函数实例_mysql自定义函数原理与用法实例分析

    本文实例讲述了mysql自定义函数原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04-18 什么 ...

  5. mysql 获取子分类_MySQL 自定义函数获取一个分类的无限级子分类

    本方法不易维护,建议取出数据,在程序中递归,例如 https://javascript.net.cn/article?id=654 代码如下:delimiter / DROP FUNCTION IF ...

  6. mysql 函数事务_MySQL:函数和事务

    一.函数 MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作. (一)数 ...

  7. mysql 处理文本数据_MySQL ------ 数据处理函数(文本、日期、数值)(十)

    与大多数语言一样,SQL支持利用函数来处理数据. 好处:函数一般在数据上执行,给数据的转换和处理提供了方便. 可移植的(portable) : 能运行在多个系统上的代码. 注意: 1.多数SQL 是可 ...

  8. mysql数学函数名_Mysql数学函数

    所有的数学函数在发生错误的情况下,均返回 NULL. - 一元减.改变参数的符号: mysql> SELECT - 2; -> -2 注意,如果这个操作符被用于一个 BIGINT,返回值也 ...

  9. mysql 正无穷字符_mysql 字符串函数收集比较全

    ASCII(str)返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); - ...

最新文章

  1. 1美元训练BERT,教你如何薅谷歌TPU羊毛 | 附Colab代码
  2. UOJ228:基础数据结构练习题——题解
  3. 基于3G网络的汽车防盗报警系统视频监控设计[图]
  4. linux多线程编写哲学家,Linux系统编程(三) ------ 多线程编程
  5. Eclipse+svn+subclipse配置
  6. 剑指offer面试题22. 链表中倒数第k个节点(链表)
  7. Mysql8.0.12解压版安装亲测(步骤超级简单)
  8. ggplot2分面柱状图柱子比例一致_R语言柱状图
  9. 刚刚,2021 ACM Fellow放榜!李飞飞、谢涛、刘铁岩等13名华人学者当选
  10. Python 根据AIC准则定义向前逐步回归进行变量筛选(二)
  11. ActiveMQ--CVE-2015-5254
  12. Python 批量下载SIGMOD,VLDB的论文 Mac OS
  13. 编译原理——语法分析器(C/C++代码实现)
  14. 解决 ENVI App Store安装后无法打开的问题
  15. Cadence OrCAD Capture打开.bxl封装文件的方法图文教程
  16. MR实现reduce join和map join及hive的执行计划
  17. 在某个文件目录中打开cmd的方法及快速获取文件路径的方法
  18. sql server查询分析器的一个选项...
  19. 阿里云视频点播-->>>阿里云媒资上传工具类及配置
  20. 常见的分布式文件系统介绍及对比

热门文章

  1. 作为一名Java程序员,这些Spring知识点面试官常考
  2. MobileViT 网络测试
  3. python opencv生成模糊图像
  4. 编译出错libicui18n.so.58: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8‘
  5. adb server version (41) doesn‘t match this client (39); killing
  6. NMS和roi pooling 实现以及加速
  7. PelleeNet_SSD
  8. pycharm debug code -1073741819
  9. jupyter 多个python版本
  10. 八、redis性能测试