`
落叶换新叶
  • 浏览: 25559 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

mysql函数-计算两个月份之间的月份

阅读更多
CREATE  FUNCTION `months_between`(`big_date` date,`small_date` date) RETURNS int(11)
BEGIN
	 declare diffMonth int;
   declare diffYear int;
   declare diffDay int;
   declare number int;

  select month(big_date)-month(small_date) ,day(big_date)-day(small_date) ,year(big_date)-year(small_date) into diffMonth,diffDay,diffYear;


if diffMonth > 0 and diffDay >= -1 then
   set number=diffYear*12 + diffMonth;
elseif diffMonth > 0 and  diffDay < -1 then
		 set number=diffYear*12 + diffMonth-1;
elseif diffMonth < 0 and  diffDay > -1 then 
    set number=diffYear*12 - (month(small_date)-month(big_date))+1;
elseif diffMonth = 0 and diffDay >= -1 then
    set number=diffYear*12 ;
else 
    set number = diffYear*12 - (month(small_date)-month(big_date));
end if;

return number;

END

 

0
0
分享到:
评论

相关推荐

    sql确定两个日期之间的月份数或年数

    - **解析**:通过 `DATEDIFF` 函数计算两个日期之间的月份数。 ### 总结 通过上述不同数据库系统中的示例可以看出,虽然不同的数据库提供了不同的内置函数来简化计算过程,但其核心思想都是相同的:即先找到两个...

    MySQL常用函数大全

    - **计算两个日期间的月份数差**: - `SELECT PERIOD_DIFF(200302, 199802);` #### 示例查询 - **计算年龄**: - `SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(birthday)), '%Y') + 0 AS age FROM ...

    Mysql常用函数列表

    - 功能:比较两个字符串`str1`和`str2`的大小。 - 示例:`STRCMP('abc', 'ABC')`将返回0。 16. **SUBSTRING(str, pos[, len])** - 功能:从字符串`str`的第`pos`个字符开始截取长度为`len`的子字符串。 - 示例...

    MYSQL数据库校验身份证函数

    ### MySQL数据库校验身份证函数详解 #### 一、引言 在进行用户信息验证时,身份证号的有效性检查是一项常见的需求。特别是在中国,一个合法有效的身份证号码必须符合一定的格式规范和逻辑规则。本文将深入解析...

    mysql时间日期函数

    这两个函数分别返回英文的星期几名称和月份名称。例如: ```sql SELECT DAYNAME("1998-02-05"), MONTHNAME("1998-02-05"); ``` 结果分别为`'Thursday'`和`'February'`。 ### QUARTER(date) 返回给定日期所在的...

    mysql 日期函数相关操作

    `PERIOD_DIFF()`函数用于计算两个时间周期之间的差值。 ### 13. `DATE_ADD()`, `DATE_SUB()`, `ADDDATE()`, `SUBDATE()` 这些函数用于对日期进行加减操作。自MySQL 3.23版本起,推荐使用`DATE_ADD()`和`DATE_SUB()...

    mysql的日期和时间函数.rar

    - `TIMESTAMPDIFF()` 可以计算两个日期或时间之间的秒、分钟、小时、天等差异。 10. **时间戳与系统时区** - `UTC_*` 系列函数处理基于协调世界时间(UTC)的日期和时间,如 `UTC_DATE()` 和 `UTC_TIME()`。 - `...

    mysql日期函数总结

    此函数可以用于日期之间的比较或计算两个日期相差的天数: ```sql SELECT TO_DAYS('2008-08-08') - TO_DAYS(NOW()); ``` - **DATEDIFF(date1, date2)**: 计算两个日期之间的天数差。 ```sql SELECT DATEDIFF...

    MySQL时间日期相关函数

    - 计算两个日期时间之间的差值,以指定的时间单位返回。 10. **FROM_UNIXTIME()** 和 **UNIX_TIMESTAMP()**: - FROM_UNIXTIME() 将 Unix 时间戳转换为日期时间格式。 - UNIX_TIMESTAMP() 将日期时间转换为 Unix...

    mysql日历数据表1900-2100(公历表和农历表).rar

    为了实现农历和公历之间的转换,数据库可能会包含一些额外的计算逻辑,例如农历日期到公历的算法,这涉及到闰月的处理,因为农历的月份长度不固定。这些转换可能通过存储过程或函数实现,以便在查询时动态计算。 在...

    MySQL计算两个日期相差的天数、月数、年数

    MySQL提供了丰富的日期和时间函数,使得我们可以方便地计算两个日期之间的差异,无论是天数、月数还是年数。本篇文章将深入探讨如何利用MySQL的`TIMESTAMPDIFF`函数以及相关日期函数来实现这一目标。 `...

    mysql常用函数

    17. **STRCMP(s1,s2)**: 比较两个字符串`s1`和`s2`。 - 例如:`STRCMP('test', 'test')` 返回 `0`。 18. **TRIM(str)**: 去除字符串两端的所有空白字符。 - 例如:`TRIM(' test ')` 返回 `'test'`。 19. **UCASE...

    mysql的日期和时间函数

    两个参数形式的 WEEK() 允许你指定一周是否以星期日或星期一开始,以及返回值为 0-53 还是 1-52。 这里的一个表显示第二个参数是如何工作的: 值 含义 0 一周以星期日开始,返回值范围为 0-53 1 一周以...

    计算2个日期相差天数、去除节假日周末

    接下来,我们需要一个函数来计算两个日期之间的总天数。C++标准库中的`chrono`模块可以方便地处理日期和时间的计算。我们可以通过`std::chrono::days`来表示日期差: ```cpp std::chrono::days daysBetween(const ...

    指定两个日期计算相隔的天数

    提供的文件"DATEDIFF.VBP"可能是一个VB6或VBA项目,其中的`DATEDIFF`函数是VB中的内置函数,用于计算两个日期之间的差异。使用方式如下: ```vba Dim date1 As Date Dim date2 As Date Dim daysDiff As Long ...

    mysql 时间函数

    - `PERIOD_ADD()`, `PERIOD_DIFF()`: 对于月份级别的周期操作,用于添加或计算两个日期之间的月份数。 7. **时间区和时区转换**: - `CONVERT_TZ()`: 将日期时间从一个时区转换到另一个时区。 8. **其他函数**:...

    mysql日期和时间格式转

    - **PERIOD_DIFF**:计算两个表示为 YYYYMM 的日期值之间的差值。 - **示例**: ```sql SELECT PERIOD_ADD(9801, 2); -- 返回 199803 SELECT PERIOD_DIFF(9802, 199703); -- 返回 11 ``` #### DATE_ADD 和 DATE...

    mysql 日期函数

    - **DATE_ADD(date, INTERVAL expr type)** 和 **DATE_SUB(date, INTERVAL expr type)**:这两个函数分别用于增加或减少指定日期的某个时间单位。例如,`SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);` 将返回明天的日期...

Global site tag (gtag.js) - Google Analytics