Arhn - архитектура программирования

Как проверить, истек ли срок действия элемента или не используется php

У меня есть форма, которая используется для продления полисов, которые были куплены человеком.

Моя идея заключается в том, что дата истечения срока действия предмета, подлежащего продлению, должна быть сверена с новой датой покупки из формы продления.

Я пробовал это:

$check="SELECT * FROM transactions WHERE Expiry_Date > '$_POST[newDate]' and Policy_Number = '$_POST[Policy_Number]' ";

Но это не делает правильную проверку.

Вместо этого, например, если дата истечения срока действия была «2015-23-9», а newDate была «2015-22-9», она по-прежнему принимает данные, которые не должны быть, но если новая дата была, например, «2014-22-19». " тогда это дало бы производный результат, который я искал.

Как можно проверить элемент (policy_number) и его дату истечения срока действия, используя новую дату, чтобы увидеть, действительно ли срок действия элемента истек или нет в отношении моего оператора sql?

21.10.2014

  • каков тип данных Expiry_Date в вашей таблице? 21.10.2014
  • тип данных текст 21.10.2014
  • я использовал скрытое поле, чтобы получить дату начала и дату истечения срока действия на основе текущей даты с этой ‹?php echo date('Y-m-d'); ?› 21.10.2014
  • В вашем заявлении sql вы сравниваете даты. Однако вы сравниваете строку даты с текстовым полем, которое не даст вам правильного ответа. Для сравнения дат в SQL столбец должен иметь тип данных DATETIME или TIMESTAMP. 21.10.2014
  • хорошо, позвольте мне изменить это, я оставил это в тексте, потому что мне нужно было получить это вручную 21.10.2014
  • Сравнение дат доступно здесь сравнение дат 21.10.2014

Ответы:


1

Кажется, вы используете такой формат для хранения дат: ГГГГ-ДД-М. Похоже, что они хранятся в вашем столбце таким образом и представляются СУБД в вашем запросе.

Даты, сохраненные таким образом, не будут сопоставляться — сравниваться друг с другом — правильно.

Попробуйте это в своем SQL

 WHERE STR_TO_DATE(Expiry_Date, '%Y-%d-%m') >
                         STR_TO_DATE('$_POST[newDate]' , '%Y-%d-%m')

Строка форматирования '%Y-%d-%m' сообщает STR_TO_DATE(), что ваши строки имеют формат ГГГГ-ДД-М. Если вы дадите этой функции поддельную дату, например 2014-22-19, она вернет NULL, так что будьте осторожны.

Это преобразует как ваш ввод, так и значения столбца в поля DATE, которые сравниваются так, как вы ожидаете.

А еще лучше, если вы можете, переключиться на форматирование строк ГГГГ-ММ-ДД для ваших дат и на использование типа данных DATE в вашем столбце. Вам это понравится, потому что вы сможете ускорить процесс с помощью индекса.

21.10.2014
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..