Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 12.04.2018
Сообщений: 8
1

Удаление строки из БД при сравнении даты

02.05.2018, 14:56. Показов 815. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Имеется база данных, в которой в одной из колонок записывается дата. Дата пишется следующим образом. 02.05.2018
Заносится дата через переменную:
PHP
1
$date=date("d.m.Y");
Нужно сделать скрипт, который в дальнейшем будет запускаться через cron, допустим, в 12 ночи, и удалить записи с датой, которая меньше текущей.
Сделал такой скрипт:
PHP
1
2
$date=date("d.m.Y");
$del=$db->query("DELETE FROM info WHERE date<?s",$date);
Но при выполнении данного скрипта, удаляются записи только который меньше первого числа. Например: Если сегодня 02.05.2018, то удалятся записи 01.05.2018, 01.04.2018, но не удалятся 30.04.2018, 25.03.2018
Я подозреваю, что сравнение идет просто построчно.
Как сделать чтобы сравнение было правильным? быть может нужно и заносить данную дату в базу данных каким то другим методом?
Заранее благодарю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2018, 14:56
Ответы с готовыми решениями:

Как получить true при сравнении указанной строки и строки из буфера в if?
Использую C++Builder 6. Как получить true при сравнении указанной строки и строки из буфера в...

Сравнение двух таблиц и удаление несуществующих записей в одной при сравнении с другой
Собственно говоря задача такая: Если в таблице Поставки существуют ячейки с Кодом Поставки, которых...

Определение значения обратных ссылок при сравнении строки с шаблоном
Ребят, подскажите, пожалуйста Необходимо определить значения обратных ссылок при сравнении строк ...

Макрос. Удаление информации при наступлении указанной даты
всем здравия Есть книга В книге имеется 4 Листа: Служ, Sheet1, Sheet2, Sheet3 на Листе...

6
350 / 294 / 71
Регистрация: 15.09.2017
Сообщений: 1,305
02.05.2018, 16:11 2
Да, заносите день, месяц, год в обратном порядке. И удаление, естественно, тоже делайте по границе в этом формате.

Добавлено через 6 минут
Если у даты тип date, в качестве разделителей используйте малую черту (дефис). И хотя бы зарезервированные слова, используемые в качестве имен полей, обрамляйте, как полагается: `date`.
0
0 / 0 / 0
Регистрация: 12.04.2018
Сообщений: 8
02.05.2018, 22:29  [ТС] 3
Phantom-84, спасибо
Попробую заносить так: 2018.05.02
У даты тип varchar стоит.
По поводу обрамления понял, спасибо
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
03.05.2018, 20:07 4
Цитата Сообщение от taekwz Посмотреть сообщение
У даты тип varchar стоит.
это уже не дата, а строка
Дата имеет типы данных: DATETIME, DATE, TIME, YEAR, TIMESTAMP
0
0 / 0 / 0
Регистрация: 12.04.2018
Сообщений: 8
03.05.2018, 20:12  [ТС] 5
Виталюска, Я знаю, но т.к. я изначально дату присваиваю переменной $date, и уже ей заношу в БД,я думал это не имеет большой разницы.
Проблема в том, что хотелось бы для пользователя выводить дату в виде ДД.ММ.ГГГГ, а с помощью DATETIME, DATE и тд. она выводится в формате ГГГГ.ММ.ДД. Или я не прав, и можно как то настроить определенный формат?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
03.05.2018, 20:18 6
Цитата Сообщение от taekwz Посмотреть сообщение
Или я не прав
не прав


SQL
1
SELECT DATE_FORMAT(`поле с датой`, '%d.%m.%Y') AS nuznij_format FROM `table_name`
0
350 / 294 / 71
Регистрация: 15.09.2017
Сообщений: 1,305
04.05.2018, 00:19 7
Форматирование лучше делать в представлении, а не в запросе.
0
04.05.2018, 00:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2018, 00:19
Помогаю со студенческими работами здесь

Удаление конкретной строки из списка строк, при этом не трогать дублирующие строки
Необходимо из списка удалить конкретную строку, при этом не затронуть дублирующие строки. Как...

Ошибка при сравнении
Доброго всем времени суток, ребята помогите, не могу понять что я делаю не так. Ошибка: Оператор...

EQ при сравнении переменных
Почему выдает true, если не предназначен для сравнения чисел?(setq x 1) (setq y 1) (eq x y);T...

Возникла ошибка в сравнении текста из ComboBox и строки в C++ Builder 2010
Вот текст программы: void __fastcall TForm1::Bt_ColorClick(TObject *Sender) { здесь ошибка if...

Ошибка преобразования даты или времени из символьной строки при добавлении записей в БД
Здравствуйте! Столкнулся с казалось бы простой проблемой, но вот уже несколько часов, не могу ее...

Ошибка при сравнении символов
пытаюсь сравнить символ и выдаёт ошибку void __fastcall TForm1::Button1Click(TObject *Sender) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru