Получить данные больше, чем равна сегодняшней дате

Я хочу получить все данные с сегодняшней даты (или больше, чем сегодняшняя дата). Но он показывает всю дату до и после сегодняшней даты. См. изображения ниже: Получить данные больше, чем равна сегодняшней дате

Мой запрос на выборку: SELECT * FROM tbl_reservation_info WHERE ri_id !='' AND status = 'Success' AND ri_arrival_date > '08-Apr-2019'

Попробуйте это: SELECT * FROM tbl_reservation_info WHERE ri_id !='' AND status = 'Success' AND DATE(ri_arrival_date) >= DATE('08-Apr-2019')

Abdulrehman Sheikh 08.04.2019 09:18

Если для вашего столбца установлено значение VARCHAR, то вы, вероятно, сравниваете строки, а не дату. Пожалуйста, преобразуйте столбец в тип даты в MySQL, если это не так.

akshithMarolie 08.04.2019 09:19

Ваш столбец не относится к типу DATE. Вам нужно отформатировать его как дату, чтобы сравнение работало.

BlackPearl 08.04.2019 09:19
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
143
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Ваши даты имеют недопустимый формат даты MySQL (столбец предположительно представляет собой VARCHAR или аналогичный) и сравниваются как строки. Поскольку все ваши даты начинаются с 1, 2 или 3, все они больше, чем (с использованием сравнения строк) строка даты, начинающаяся с 0. Вам нужно преобразовать форматы для правильного сравнения:

SELECT * 
FROM tbl_reservation_info
WHERE ri_id !='' 
  AND status = 'Success' 
  AND STR_TO_DATE(ri_arrival_date, '%d-%b-%Y') > STR_TO_DATE('08-Apr-2019', '%d-%b-%Y')

понял, и спасибо @nick, все работает правильно. На самом деле, мой тип поля даты varchar

user11130345 08.04.2019 09:57

@Саббир рад, что смог помочь.

Nick 08.04.2019 09:58

Обычно дата сохраняется в следующем формате: ГГГГ-ММ-ДД. Возможно, ваш php-myadmin отформатировал его таким образом или

вы должны изменить его с varchar/text на дату, иначе сортировка и фильтрация будут сложными. Также ваш код должен использовать этот формат - для отображения вам нужно его преобразовать.

На вашем скриншоте 12 больше, чем 8, которые вы фильтруете.

12 марта 2019 > 8*

https://dev.mysql.com/doc/refman/8.0/en/дата-и-время-тип-обзор.html

https://www.php.net/manual/de/function.date.php

Вы можете просто попробовать CURDATE():

SELECT * 
FROM tbl_reservation_info 
WHERE ri_id !='' AND status = 'Success' AND  ri_arrival_date > CURDATE();

При этом он пропускает сегодняшнюю дату. если вы хотите, чтобы они добавлялись >=

Убедитесь, что ri_arrival_date имеет формат date.

Другие вопросы по теме