как взять разницу месяцев двух дат в MySQL

0

как принять разницу в месяц двух дат в MySQL.

Я пытаюсь получить разницу в месяц двух дат, но я не получаю. дней.

select datediff('2014-10-17T00:00:00.000-07:00', '2015-02-06T00:00:00.000-08:00'); 
  • 2
    Возможный дубликат Как рассчитать разницу между двумя датами в месяцах в MySQL
  • 0
    Попробуйте это Select PERIOD_DIFF(MONTH(date1),MONTH(date2)) from table;
Показать ещё 3 комментария
Теги:

5 ответов

4

TIMESTAMPDIFF()

это ваше решение.


Синтаксис будет

TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2);

Возвращает datetime_expr2 − datetime_expr1, где datetime_expr1 и datetime_expr2 - выражения даты или даты. Одним из выражений может быть дата, а другая - дата и время; значение даты рассматривается как дата-время, имеющее временную часть "00: 00: 00", где это необходимо.

~ MySQL :: Справочное руководство MySQL 5.5 :: 12.7 Функции даты и времени ~

Правовые значения для unit

  • MICROSECOND (микросекунды)
  • ВТОРОЙ
  • МИНУТЫ
  • ЧАС
  • ДЕНЬ
  • НЕДЕЛЮ
  • МЕСЯЦ
  • КВАРТАЛ
  • ГОД

Примеры

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
        -> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
        -> -1
mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
        -> 128885
1

Используйте этот код

SELECT TIMESTAMPDIFF(MONTH, '2014-10-17T00:00:00.000-07:00','2015-02-06T00:00:00.000-08:00')
0
in MySQL server 
DATEDIFF is built in function
You can get Difference of 
Day
Month
Year

SELECT DATEDIFF(DAY,'2018-05-01',GetDate())
SELECT DATEDIFF(Month,'2018-05-01',GetDate())
SELECT DATEDIFF(Year,'2018-05-01',GetDate())
  • 0
    Хотя это может ответить на вопрос, лучше добавить описание того, как этот ответ может помочь решить проблему. Пожалуйста, прочитайте Как я могу написать хороший ответ, чтобы узнать больше.
0

Это может помочь,

SELECT 12 * (YEAR(STR_TO_DATE('01/01/2011', '%d/%m/%Y')) - 
YEAR(STR_TO_DATE('01/01/2010', '%d/%m/%Y'))) 
+ (MONTH(STR_TO_DATE('01/01/2011', '%d/%m/%Y')) 
- MONTH(STR_TO_DATE('01/01/2010', '%d/%m/%Y'))) AS months
0

Попробуй это

Select PERIOD_DIFF(Date_format('2015-02-06T00:00:00.000-08:00', '%Y-%m'), Date_format('2014-10-17T00:00:00.000-07:00', '%Y%m'))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню