Сравните now () и вернем SQL ближайшей предыдущей и ближайшей следующей даты - PullRequest
0 голосов
/ 20 сентября 2018

Как выполнить SQL-запрос, который возвращает только два значения, сравнивая тип даты до now () и одно после now ().

Я создал SQL-запрос для одного решения, но как это сделать?Я объединяю приведенный ниже SQL-запрос, чтобы вернуть предыдущий и последующий запрос ()

SELECT *
FROM Orders
WHERE ordersDate > now()
AND ordersDate IS NOT NULL
ORDER BY ordersDate ASC
LIMIT 1;

Другой SQL-запрос, который я пытаюсь выполнить:

 SELECT *
 FROM Orders  
 WHERE
 (SELECT min(ordersDate) FROM Orders 
 Where ordersDate > now()) 
 AND
 (SELECT max(ordersDate) FROM Orders 
 Where ordersDate < now());

Этот SQL-запрос возвращает более двух значений, которые не являютсячто я хочу, я просто один до и после сейчас (), только два значения.

Ожидаемый результат, данный now () значение сегодняшнего дня: (Я не знаю, как создать таблицу здесь)

OrdersID    ordersDate               OrderMade
    4             19/09/2018            yes
    7             21/09/2018            PreOrder

1 Ответ

0 голосов
/ 20 сентября 2018

Один из способов - два отдельных запроса SELECT.Один запрос выбирает порядок до текущей даты и времени, а другой - выборку после текущей даты и времени.Мы можем использовать предложение Order By Limit , чтобы выбрать только одну строку для оператора Select.Затем вы можете использовать UNION ALL , чтобы получить комбинированный результат.

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

(
 SELECT *
 FROM Orders
 WHERE ordersDate > NOW() 
 ORDER BY ordersDate ASC LIMIT 1
) 
UNION ALL 
(
 SELECT *
 FROM Orders
 WHERE ordersDate < NOW() 
 ORDER BY ordersDate DESC LIMIT 1
) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...