Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск по дате в MySQL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kuller
Отправлено: 11 Декабря, 2013 - 11:16:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




сделал такой запрос

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM TABLE WHERE mdata >= '06.12.2013' AND mdata<= '07.12.2013' AND orders='1' ORDER BY id DESC LIMIT 0 ,10 ;;


выборка происходит нормально на первый взгляд, но как я понимаю сравнивается только число без месяца и года. Как можно сделать чтоб происходил поиск по полной дате, а не только число?

(Отредактировано автором: 11 Декабря, 2013 - 11:31:37)

 
 Top
Мелкий Супермодератор
Отправлено: 11 Декабря, 2013 - 11:21:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Пишите и сравнивайте стандартный Y-m-d.


-----
PostgreSQL DBA
 
 Top
kuller
Отправлено: 11 Декабря, 2013 - 11:23:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




Мелкий пишет:
Пишите и сравнивайте стандартный Y-m-d.


пробовал. Тогда результат нулевой

точнее нулевой показывает на 2014 год хотя у даты стоит год 2014 а если произвести поиск по году 2013 то опять показывает правильно только по числу

(Отредактировано автором: 11 Декабря, 2013 - 11:25:45)

 
 Top
Flash_PR
Отправлено: 11 Декабря, 2013 - 12:06:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




зачем в таком формате хранить дату? Неудобно же?

(Отредактировано автором: 11 Декабря, 2013 - 12:07:59)



-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
kuller
Отправлено: 11 Декабря, 2013 - 12:10:47
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




Flash_PR пишет:
зачем в таком формате хранить дату? Неудобно же?


записал такой формат чтоб при выводе даты не выполнять с ней операцию по форматированию.

Но вот поиск не работает в любом формате.
 
 Top
Мелкий Супермодератор
Отправлено: 11 Декабря, 2013 - 12:14:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Мелкий пишет:
Пишите и сравнивайте стандартный Y-m-d.

В базу и пишите так. В обычный date.

kuller пишет:
чтоб при выводе даты не выполнять с ней операцию по форматированию.

Именно про это и говорят - преждевременная оптимизация - корень зла.


-----
PostgreSQL DBA
 
 Top
Flash_PR
Отправлено: 11 Декабря, 2013 - 12:32:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




kuller пишет:
записал такой формат чтоб при выводе даты не выполнять с ней операцию по форматированию.

Завтра тебе потребуется в другом формате выводить дату......что будешь делать?


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
kuller
Отправлено: 11 Декабря, 2013 - 14:20:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




Flash_PR пишет:
Завтра тебе потребуется в другом формате выводить дату......что будешь делать?


это не потребуется.

тема не про то какой формат используется. а про то что не происходит поиск. Выше я писал что пробовал изменить даты в БД на Y-m-d из формы приходит дата в формате d.m.Y отформатировал ее в формат Y-m-d и вставляю переменную в sql запрос. Результат тот же. В чем может быть проблема?
 
 Top
esterio
Отправлено: 11 Декабря, 2013 - 14:24:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




как раз таки если это дата значит соответсвенно тип поля должен быть DATE, а форматирование - економия на спичках. В вашем же случае никак(ну или какие-то костили, которые хуже того-же форматирования)
 
 Top
Prizma
Отправлено: 11 Декабря, 2013 - 15:05:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Можно составить запрос в котором ты сначала будешь сравнивать год, потом месяц, а потом день. Запрос будет немного заморочным, вот примеры и инфомарция по запросам "справа на лево": http://www[dot]oooportal[dot]ru/?cat=article&id=1224
 
My status
 Top
Мелкий Супермодератор
Отправлено: 11 Декабря, 2013 - 15:12:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Prizma пишет:
Можно составить запрос в котором ты сначала будешь сравнивать год, потом месяц, а потом день.

Я просто оставлю этот тут:
Спойлер (Отобразить)


kuller пишет:
тема не про то какой формат используется. а про то что не происходит поиск.

Именно про формат, потому что это и есть причина и следствие.
Перевели в тип date? Проверили данные после конвертации? Есть строки, которые должны были быть найдены по запросу? Покажите эти строки и именно тот запрос, который эти строки не возвращает.


-----
PostgreSQL DBA
 
 Top
kuller
Отправлено: 11 Декабря, 2013 - 15:34:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




Мелкий пишет:
Перевели в тип date? Проверили данные после конвертации? Есть строки, которые должны были быть найдены по запросу? Покажите эти строки и именно тот запрос, который эти строки не возвращает.


за места типа DATE ставил datetime. и не работало. Сейчас попробовал тип DATE вроде работает. Сейчас еще раз все проверю. если что подниму тему. Спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB