首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当日期相同时才获取月份差值

仅当日期相同时才获取月份差值
EN

Stack Overflow用户
提问于 2019-02-26 13:54:27
回答 2查看 55关注 0票数 1

如果MySQL中的两个日期相同,我如何才能获得这两个日期之间的月份差?这是我到目前为止所做的,但它不起作用,因为当日子不同时,它仍然起作用:

代码语言:javascript
复制
TIMESTAMPDIFF(MONTH, '2019-05-05', '2019-06-05')
Output: 1

TIMESTAMPDIFF(MONTH, '2019-05-05', '2019-06-22')
Output: 1 // should NOT work because days are 05 and 22. Needs to be the same dates

我显然可以做到:

代码语言:javascript
复制
DAY('2019-05-05') = DAY('2019-06-05') AND TIMESTAMPDIFF(MONTH, '2019-05-05', '2019-06-05')

但是我如何在一个函数中做到这一点呢?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-26 14:08:21

SUBDATE()/ADDDATE/DATE_SUB/DATE_ADD将很好地处理这一点:

代码语言:javascript
复制
SELECT DATE_SUB('2019-06-22', INTERVAL 1 MONTH) = '2019-05-05'

| DATE_SUB('2019-06-22', INTERVAL 1 MONTH) = '2019-05-05' |
| ------------------------------------------------------: |
|                                                       0 |

代码语言:javascript
复制
SELECT DATE_SUB('2019-06-22', INTERVAL 1 MONTH) = '2019-05-22'

| DATE_SUB('2019-06-22', INTERVAL 1 MONTH) = '2019-05-22' |
| ------------------------------------------------------: |
|                                                       1 |

请参阅DBfiddle

票数 4
EN

Stack Overflow用户

发布于 2019-02-26 14:04:34

在MySQL中,您可以使用以下查询来获取它...

代码语言:javascript
复制
 select DATEDIFF('2019-06-22', '2019-05-05') as Diff from table_name where 
    day('2019-06-22') == day('2019-05-05');

正在使用列名...

代码语言:javascript
复制
 select DATEDIFF(dateColum2, dateColum1) as Diff from table_name where 
    day(dateColum2) == day(dateColum1);

在PHP中,你可以像下面这样获得它。

代码语言:javascript
复制
$dateValue1 = '2019-05-05';
    $dateValue2 =  '2019-06-22';
    $time1=strtotime($dateValue1);
    $day1=date("D",$time1);

    $time2=strtotime($dateValue2);
    $day2=date("D",$time2);

    if($day1 == $day2 ) {
    $seconds_diff = $time2 - $time;
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54879206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档