Как консультировать настоящий месяц и следующие 15 дней следующего месяца MYSQL?

привет я делаю query, чтобы консультировать текущий месяц, но не понимаю, как звонить в том же query следующие 15 дней следующего месяца, это код, который у меня есть в настоящее время:

SELECT CONCAT(fecha,' - ',dia) AS fecha_concat, 
	   horas, 
	   personasd, 
	   estado
from personas
WHERE
MONTH(fecha) = MONTH(CURDATE())

вкратце я нуждаюсь в том, чтобы консультировать настоящий месяц + на 15 дней следующего месяца.

1
задан 07.11.2019, 16:45
2 ответа

Ты можешь использовать DATE_ADD MySQL, чтобы добавлять дни и месяцы. Давайте делать следующее, вместо того, чтобы быть специфическим месяцем, который был бы между intervaldo дат с BETWEEN , этот интервал будет с первого дня текущего месяца

DATE_FORMAT(CURDATE(),'%Y-%m-01')

И 15 дней следующего месяца

DATE_ADD(DATE_ADD(DATE_FORMAT(CURDATE(),'%Y-%m-01'), INTERVAL 1 MONTH), INTERVAL 14 DAY);

Протестируй следующий код:

SELECT CONCAT(fecha,' - ',dia) AS fecha_concat, 
       horas, 
       personasd, 
       estado
from personas
WHERE fecha BETWEEN DATE_FORMAT(CURDATE(),'%Y-%m-01') AND DATE_ADD(DATE_ADD(DATE_FORMAT(CURDATE(),'%Y-%m-01'), INTERVAL 1 MONTH), INTERVAL 14 DAY);

С вкладом gbianchi остался бы следующего способа:

SELECT CONCAT(fecha,' - ',dia) AS fecha_concat, 
       horas, 
       personasd, 
       estado
from personas
WHERE fecha BETWEEN DATE_FORMAT(CURDATE(),'%Y-%m-01') AND DATE_ADD(DATE_FORMAT(CURDATE(),'%Y-%m-15'), INTERVAL 1 MONTH);
2
ответ дан 01.12.2019, 12:23
  • 1
    обрежь тебя избавь от одного date_add во второй стоимости, если, вместо того, чтобы такие 01 как день использует, ты прямо помещаешь 15 ;) – gbianchi♦ 07.11.2019, 17:03
  • 2
    @gbianchi Спасибо за вклад, издайте ответ с твоим solució n. Ты имеешь razó n. – Gustavo Gil 07.11.2019, 17:06
  • 3
    большое спасибо это решение искало, только я добавил его в конце концов: AND YEAR (дата) = YEAR (CURDATE ()) для añ или текущий. – fr_oc 07.11.2019, 17:14
  • 4
    @fr_oc это, что ты добавил, это не подает ничего. уже возвращает añ или текущий... Кроме того, с этим, что ты добавил, в декабре - январе консультация будет прекращать функционировать... – gbianchi♦ 07.11.2019, 17:18
  • 5
    весь разум @gbianchi jeje не я habí в обращенный внимание jeje – fr_oc 07.11.2019, 17:19

Она soluciГіn, который ты выдвигаешь podrГ, - чтобы показывать настоящий месяц других aГ±os, что не были настоящим.

я предлагаю ее Тебе soluciГіn, который он показывает тебе @gbianchi:

SELECT * FROM fechas
  WHERE fecha BETWEEN DATE_FORMAT(NOW(),'%Y-%m-01') 
  AND DATE_FORMAT(NOW(),'%Y-%m-01')+INTERVAL 45 DAY;

AsГ - как dataset, который я использовал для доказательств:

CREATE TABLE fechas(
    id_fecha int AUTO_INCREMENT PRIMARY KEY,
    fecha date
  );

INSERT INTO fechas (fecha) VALUES 
  ('2018-11-04'),
  ('2019-11-04'),
  ('2019-12-15'),
  ('2019-12-21'),
  ('2019-12-22'),
  ('2019-12-25');

, С которым ты можешь получать эти результаты:

  • Для твоей консультации:
SELECT * FROM fechas WHERE MONTH(fecha)=MONTH(NOW());

04/11/2018
04/11/2019
  • , Для которой я предлагаю тебе:
04/11/2019
15/12/2019
1
ответ дан 01.12.2019, 12:23
  • 1
    Это не консультирует текущий месяц и до 15 следующего месяца... это консультируется в следующие 45 дней... – gbianchi♦ 07.11.2019, 17:02
  • 2
    Действительно, уже está решенный... Спасибо @gibianchi – David JP 07.11.2019, 17:03
  • 3
    нет. продолжи быть плохой. now + 45 дает больше, чем 15 следующего месяца... Если мы высосем идею о комментарии, лучше это приносить пользу ;) – gbianchi♦ 07.11.2019, 17:04
  • 4
    Так как sí и ademá s citá ndote... :D уже это у тебя есть – David JP 07.11.2019, 17:06

Теги

Похожие вопросы