2014.8.28(放款时间) 20161103(输入天数) 20161128(结果)
来源:互联网 发布:软件测试的生命周期 编辑:程序博客网 时间:2024/05/18 22:40
2014.8.28(放款时间) 20161103(输入天数) 20161128(结果)
20161129 20161228
'yy-mm-dd'
需求:计算当前日期(输入)到放款日期天数最近的还款日期,包括当天可当天还款?(规则:结果天数为放款日期的天,如果当前天数小于放款日期天数,结果年月不变(输入的年月),否则,月份加1)
结果:
SET @my_paydate = '2016-08-31';
SET @my_now = '2016-12-30';
SELECT TIMESTAMPDIFF(MONTH,DATE_SUB(@my_paydate,INTERVAL DAYOFMONTH(@my_paydate)-1 DAY),DATE_SUB(@my_now,INTERVAL DAYOFMONTH(@my_now)-1 DAY)); --计算两个时间差 (年,月,日...),保持准确要把计算日期调整到计算日期的1号
SELECT PERIOD_DIFF(DATE_FORMAT(@my_now,'%Y%m'),DATE_FORMAT(@my_paydate,'%Y%m')); --计算两个日期相差多少个月,时间格式为%Y%m
过程:
SET @my_paydate = '2014-07-31';
SET @my_now = '2016-02-03';
SELECT
IF( DAYOFMONTH(@my_now)<=DAYOFMONTH(@my_paydate),
-- before
DATE_ADD(@my_paydate,INTERVAL PERIOD_DIFF(DATE_FORMAT(@my_now,'%Y%m'),DATE_FORMAT(@my_paydate,'%Y%m')) MONTH)
,
-- after
DATE_ADD(@my_paydate,INTERVAL PERIOD_DIFF(DATE_FORMAT(@my_now,'%Y%m'),DATE_FORMAT(@my_paydate,'%Y%m'))+1 MONTH)
)
;
SET @my_paydate = '2016-08-31';
SET @my_now = '2016-12-30';
SELECT TIMESTAMPDIFF(MONTH,DATE_SUB(@my_paydate,INTERVAL DAYOFMONTH(@my_paydate)-1 DAY),DATE_SUB(@my_now,INTERVAL DAYOFMONTH(@my_now)-1 DAY));
SELECT PERIOD_DIFF(DATE_FORMAT(@my_now,'%Y%m'),DATE_FORMAT(@my_paydate,'%Y%m'));
阅读全文
0 0
- 2014.8.28(放款时间) 20161103(输入天数) 20161128(结果)
- 输入月份,显示天数(C++)
- js中计算时间差值 (天数)
- js中计算时间差值 (天数)
- js中计算时间差值 (天数)
- 日期与时间处理三(输入两个日期(年 月 日),求两个日期之间相隔的天数)
- JS控制输入日期(控制每月天数)
- 已知年月给出天数(处理输入异常)
- 输入年月输出该月天数(改良版)
- ZOJ 3326 An Awful Problem【时间区间天数(模拟)】
- 求时间差(天数)
- 得到任意时间到现在的时间间隔(天数,秒数)
- 输入两个日期(年 月 日),求两个日期之间相隔的天数
- 编程实现显示用户输入的月份(不包括闰年的月份)拥有的天数
- 输入某年某月(包括闰年),编程输出该年的该月拥有的天数
- java 计算生日 剩余天数 (两个日期间隔天数)
- 计算日期间隔(天数)
- 11周(计算天数)
- 常用git命令
- tp3.2中excel表格导出数据
- android动态生成背景透明带文字的图片
- 百度地图API常用调用
- Android APP更新下载工具类——简单封装DownloadManager
- 2014.8.28(放款时间) 20161103(输入天数) 20161128(结果)
- 【Shell】查看并杀死无响应进程
- IE8,IE7兼容问题整合
- 关于Dubbo学习总结
- Python之argv实现命令行参数实现
- 树和二叉树(四)-线索化二叉树
- Scroll View 组件使用基础
- 你绝对想知道:芝麻信用新域名xin.xin是个什么鬼!
- linux 操作备忘3