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 :: Выборка из бд в промежуток времени

 PHP.SU

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


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

> Без описания
mik
Отправлено: 12 Декабря, 2011 - 00:25:30
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Май 2011  


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




Привет, всем помогите,
Есть таблица статей с id,title,text,dt.

Как мне сделать выборку записей где dt = time() и в промежуток например с 20:30 до 21:00

P.s dt = int (unix)

Может не правильно описал проблему, говорите если что , очень нужна ваша помощь

Заранее спасибо
 
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 00:37:30
Post Id



Постоянный участник


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


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




http://phpclub[dot]ru/mysql/doc/date[dot][dot][dot]e-functions[dot]html

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


-----
Just do it
 
 Top
mik
Отправлено: 12 Декабря, 2011 - 00:40:02
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Май 2011  


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




Спасибо , попробую)
 
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 13:23:27
Post Id



Постоянный участник


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


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




Цитата:
P.s dt = int (unix)
это тип unixtimestamp или int?


-----
Just do it
 
 Top
mik
Отправлено: 12 Декабря, 2011 - 13:29:40
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Май 2011  


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




Panoptik пишет:
это тип unixtimestamp или int?


Тип столбца Int а запись в eдином числе (unix)

(Отредактировано автором: 12 Декабря, 2011 - 13:30:22)

 
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 13:33:01
Post Id



Постоянный участник


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


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




что значит в едином числе? это метка времени? можно пример?


-----
Just do it
 
 Top
mik
Отправлено: 12 Декабря, 2011 - 13:38:49
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Май 2011  


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




я передаю дату и потом с помощью mktime() перевожу ее в unix (time())
 
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 13:57:25
Post Id



Постоянный участник


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


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




вот извращения с математическими операциями, но лучше вам преобразовать данные в поле dt в тип unixtimestamp тогда можно будет использовать функции для работы с датой и временем, в данном случае не учитывается часовой пояс, так что может быть сдвиг на несколько часов
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `table_time` WHERE ((`dt`%86400)/3600)>=21 AND ((`dt`%86400)/3600)<=22 AND ((`dt`%1440)/60)>=30


-----
Just do it
 
 Top
mik
Отправлено: 12 Декабря, 2011 - 14:01:30
Post Id


Новичок


Покинул форум
Сообщений всего: 33
Дата рег-ции: Май 2011  


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




Спасибо, если я переведу в Unix , можете дать аналогичный запрос ?
 
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 14:19:44
Post Id



Постоянный участник


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


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




ща подумаю, а вы переводите осторожно, потому что все данные потеряются если вы напрямую будете это делать


-----
Just do it
 
 Top
tuareg
Отправлено: 12 Декабря, 2011 - 14:21:01
Post Id


Участник


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


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




http://phpclub[dot]ru/mysql/doc/date[dot][dot][dot]e-functions[dot]html
Так будет гораздо проще.
И время лучше хранить не в int
 
 Top
Panoptik
Отправлено: 12 Декабря, 2011 - 14:28:00
Post Id



Постоянный участник


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


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





вверху во втором посте не замечаете что либо похожее))
(Добавление)
вот вариант запроса, если тип поля 'timestamp'
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *,TIME(`dt`)  FROM `table_time` WHERE TIME(`dt`) BETWEEN '21:30:00' AND '22:00:00'


-----
Just do it
 
 Top
tuareg
Отправлено: 12 Декабря, 2011 - 19:32:30
Post Id


Участник


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


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




Если честно я прочитал первый пост. А уже потом не читал...
 
 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