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 :: 2012-08-27 20:38:15" - как в WHERE сделать проверку часа или дня?

 PHP.SU

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


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

> Описание: "2012-08-27 20:38:15" - как в WHERE сделать проверку часа или дня?
M-K
Отправлено: 28 Августа, 2012 - 13:06:20
Post Id


Новичок


Покинул форум
Сообщений всего: 42
Дата рег-ции: Февр. 2012  


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




Данные в БД хранятся в виде 2012-08-27 20:38:15
Как в SELECT ... WHERE сделать условие, что допустим день равен 27? И как сделать, что час равен 20?

Прошу в первую очередь ответить с точки зрения поиска подстроки в запросе MySQL. И только во вторую по поводу каких-то операция с датами.
(Добавление)
К примеру в PHP это делается так:

PHP:
скопировать код в буфер обмена
  1. $lastHour = substr($last['lastfm_created'], 11, 2);
  2. $lastDay = substr($last['lastfm_created'], 8, 2);
 
 Top
Мелкий Супермодератор
Отправлено: 28 Августа, 2012 - 13:26:19
Post Id



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


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


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




http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]e-functions[dot]html

Заострю внимание, что при использовании
CODE (SQL):
скопировать код в буфер обмена
  1.  WHERE функция(поле)=значение
MySQL не может использовать индекс по этому полю. Для сохранения работы по индексу и поиску всех записей на какой-то промежуток времени используйте оператор between или пару условий на границы даты.


-----
PostgreSQL DBA
 
 Top
M-K
Отправлено: 28 Августа, 2012 - 22:05:16
Post Id


Новичок


Покинул форум
Сообщений всего: 42
Дата рег-ции: Февр. 2012  


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




У меня СТРОКА!!! А не время-дато.
 
 Top
tuareg
Отправлено: 28 Августа, 2012 - 22:55:40
Post Id


Участник


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


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




M-K пишет:
У меня СТРОКА
И что теперь делать? Наверное надо изменить формат Улыбка
И кстати, и в PHP это можно сделать через ф-и даты
 
 Top
biperch
Отправлено: 28 Августа, 2012 - 23:58:31
Post Id



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


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


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




если содержимое ячейки не противоречит формату нового типа то можно поменять тим на timestamp у него такой же формат, должно прокатить но, сделай бэкап от греха)))
 
 Top
Мелкий Супермодератор
Отправлено: 29 Августа, 2012 - 08:21:07
Post Id



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


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


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




M-K пишет:
У меня СТРОКА!!!

Ваши проблемы. Должна быть datetime или timestamp. Тем более по формату хранения подходит.
В любом случае, есть функция STR_TO_DATE.


-----
PostgreSQL DBA
 
 Top
M-K
Отправлено: 29 Августа, 2012 - 16:05:40
Post Id


Новичок


Покинул форум
Сообщений всего: 42
Дата рег-ции: Февр. 2012  


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




Другой вопрос тепеть.

В БД содержится строка "2012-08-29 14:02:41". Как извлечь из БД только те строки, где 29 на месте 29? А не 30 или 28 и т.д...
Т.е. вместо 14:02:41 может быть что угодно, а "2012-08-29" железно.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Августа, 2012 - 16:53:57
Post Id



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


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


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




CODE (SQL):
скопировать код в буфер обмена
  1. date(`datefield`)='2012-08-29'

CODE (SQL):
скопировать код в буфер обмена
  1. datefield BETWEEN '2012-08-29 00:00:00' AND '2012-08-29 23:59:59'

Ну и разные вариации разной степени удобства генерации граничных условий.


-----
PostgreSQL DBA
 
 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