sql выбрать диапазон дат в следующем году

0

Я пытаюсь создать инструкцию select, добавляющую дни в CURDATE, используя следующий код:

      SELECT
                po.factory,
                po_item.po,
                po_item.style,
                po_item.style_name,
                po_item.customer_style,
                po_item.colors,
                po_item.material,
                po_item.pairs,
                po.sef,
                po.client,
                ROUND(((po_item.pairs)/12)) as total_ctn,
                style.shoe_dimension,
                factory.official_name,
            DATE_FORMAT(CURDATE()+10, '%m/%d/%y') as FROMTHIS,
            DATE_FORMAT(CURDATE()+17, '%m/%d/%y') as TOTHIS,
            CASE WHEN 
                po.rlsd is not null THEN po.rlsd ELSE po.lsd END AS date
            FROM 
                po_item
                inner join po on 
                    po_item.po = po.po
                inner join factory on 
                    po.factory = factory.id
                      inner join style on po_item.style = style.style
                      inner join client on po.client = client.id
                      inner join divisions on client.division = divisions.id
            WHERE
                divisions.group_division_id = '19'
                AND po.ref is null 
                AND po.status != 'C'
            ORDER BY 
                po.cls DESC

Вот как возвращается:

Изображение 174551

    DATE_FORMAT(CURDATE()+10, '%m/%d/%y') as FROMTHIS,
    DATE_FORMAT(CURDATE()+17, '%m/%d/%y') as TOTHIS,

возвращаются {null}, потому что это дата следующего года, так как CURDATE (сегодня), которая составляет 2017/12/10 +12, должна быть 2018/01/01, но возвращаться как {null}

Кто-нибудь знает, как это исправить? Спасибо

И тогда я хотел бы использовать оба выражения where, например:

      SELECT
                po.factory,
                po_item.po,
                po_item.style,
                po_item.style_name,
                po_item.customer_style,
                po_item.colors,
                po_item.material,
                po_item.pairs,
                po.sef,
                po.client,
                ROUND(((po_item.pairs)/12)) as total_ctn,
                style.shoe_dimension,
                factory.official_name,
                DATE_FORMAT(po.cls, '%m/%d/%y') AS date_cls,
                DATE_FORMAT(CURDATE(), '%m/%d/%y') as date_today,
                DATE_FORMAT(CURDATE()+10, '%m/%d/%y') as audit,
            DATE_FORMAT(DATE_ADD(CURDATE(),INTERVAL 12 DAY), '%m/%d/%y') AS FROMTHIS,
            DATE_FORMAT(DATE_ADD(CURDATE(),INTERVAL 17 DAY), '%m/%d/%y') AS TOTHIS,
            CASE WHEN 
                po.rlsd is not null THEN po.rlsd ELSE po.lsd END AS date
            FROM 
                po_item
                inner join po on 
                    po_item.po = po.po
                inner join factory on 
                    po.factory = factory.id
                      inner join style on po_item.style = style.style
                      inner join client on po.client = client.id
                      inner join divisions on client.division = divisions.id
            WHERE
                po.cls BETWEEN 'FROMTHIS' AND 'TOTHIS'
                AND divisions.group_division_id = '19'
                AND po.ref is null 
                AND po.status != 'C'
            ORDER BY 
                po.po,
                po.cls DESC

но не работает

Теги:
select
date
date-range

1 ответ

1
Лучший ответ

Попробуйте выполнить запрос:

SELECT DATE_FORMAT(DATE_ADD(CURDATE(),INTERVAL 10 DAY), '%m/%d/%y') AS FROMTHIS
SELECT DATE_FORMAT(DATE_ADD(CURDATE(),INTERVAL 17 DAY), '%m/%d/%y') AS TOTHIS
  • 0
    Привет, это работает. Пожалуйста, помогите мне еще раз, я просто обновлю свой вопрос
  • 0
    Сохраните его в одной переменной, а затем попробуйте использовать его
Показать ещё 2 комментария

Ещё вопросы

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