Использование MySQL DATE_ADD, 5-дневный интервал

Я пытаюсь выбрать полную сумму порядка ($) и количество счета за 5-дневный период в едином запросе. Я, может казаться, не заставляю это происходить все же. Текущий запрос, который я имею, здесь...

SELECT
    COUNT(id) as invoice_count,
    SUM(orderTotal) as orders_sum,
    UNIX_TIMESTAMP(created) as created
FROM ids_invoice
WHERE DATE_ADD(created, INTERVAL +1 DAY)
AND userId = 23 LIMIT 5'

Я не совсем уверен, что DATE_ADD является правильной функцией, которую я ищу.

В настоящее время я добираюсь....

Array ( 
    [0] => Array ( 
        [invoice_count] => 420
        [orders_total] => 97902.90
        [created] => 1252596560
    )
)

Array ( 
    [0] => Array ( 
        [invoice_count] => 68
        [orders_total] => 14193.20
        [created] => 1262900809
    )
)

Я хотел бы получить что-то больше как...

Array ( 
    [0] => Array ( 
        [invoice_count] => 18
        [orders_total] => 4902.90
        [date] => 04-19-2010
    )
)

Array ( 
    [0] => Array ( 
        [invoice_count] => 12
        [orders_total] => 5193.20
        [date] => 04-20-2010
    )
)

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

ОБНОВЛЕНИЕ я обновил свой запрос... Это все еще не вытягивает строку в течение каждого дня, что были счета на. Это только вытягивает счета от 19-го, когда существуют счета от 20-х, которые соответствуют критериям идентификатора пользователя.

SELECT
    COUNT(id) as invoice_count,
    SUM(orderTotal) as orders_sum,
    UNIX_TIMESTAMP(created) as created
FROM ids_invoice
WHERE
    created BETWEEN "2010-04-19 00:00:00" AND DATE_ADD("2010-04-19 00:00:00", INTERVAL +5 DAY) AND
    userId = 17
14
задан Webnet 22 April 2010 в 14:51
поделиться

2 ответа

Чтобы получить записи в промежутке между датами, используйте:

WHERE created BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 5 DAY)

В этом примере вы получите записи (при условии, что они существуют на сегодняшний день, включая время) между сегодняшним днем ​​и днями в будущем. Посмотрите на DATE_SUB, если хотите вернуться в прошлое.

22
ответ дан 1 December 2019 в 12:12
поделиться
WHERE created <= NOW() AND created >=NOW() - INTERVAL 5 DAY

или было бы лучше сравнить только часть даты и времени DATE:

WHERE DATE(created) <= date(NOW()) AND 
  DATE(created) >= DATE(NOW() - INTERVAL 5 DAY)
0
ответ дан 1 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

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