Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка записей с сегодняшней датой
 
 автор: hin   (20.09.2006 в 14:58)   письмо автору
 
 

Народ а можно ли так реализовать, чтобы скрипт обращался к БД где есть столбец Date и делал выбокурку только данные сегодняшнего числа, список данных за неделю, за месяц.
В голову пришло только такой способ


Select * from files where date=Now()  /// для сегодняшнего дня

А как дальше не знаю. Помогите

   
 
 автор: kasmanaft   (20.09.2006 в 18:52)   письмо автору
 
   для: hin   (20.09.2006 в 14:58)
 

Если хранится дата в timestamp (секунды с 1970 года), можно посчитать сколько секунд прошло до сегодняшнего утра, сколько пройдет до ночи (или до конца недели ... ) и таким образом искать.


<?
$time1 
mktime(0,0,0,9,20,2006);
$time2 mktime(23,59,59,9,20,2006);
mysql_query ("SELECT * FROM table WHERE (time>$time1 and time<$time2)");
?>


а для date можно так сделать
SELECT * FROM table WHERE (date>'2006-09-13' AND date<'2006-09-20')

   
 
 автор: cheops   (20.09.2006 в 20:28)   письмо автору
 
   для: hin   (20.09.2006 в 14:58)
 

Столбец date какой тип имеет?

   
 
 автор: hin   (21.09.2006 в 12:51)   письмо автору
 
   для: cheops   (20.09.2006 в 20:28)
 

Пока не какой, я только собираюсь начать писать скрипт, поэтому сразу спросил, чтобы потом не переделовать

   
 
 автор: cheops   (21.09.2006 в 13:05)   письмо автору
 
   для: hin   (21.09.2006 в 12:51)
 

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

   
 
 автор: hin   (22.09.2006 в 13:53)   письмо автору
 
   для: cheops   (21.09.2006 в 13:05)
 

С типом все понятно, а как осуществлять сортировку?? Точнее выборку, по сегодняшнему дню, по прошедшей недели, и по месяцу???

   
 
 автор: kasmanaft   (22.09.2006 в 19:50)   письмо автору
 
   для: hin   (22.09.2006 в 13:53)
 

По сегодняшнему дню
SELECT * FROM table WHERE date=NOW()
По прошедшей неделе
SELECT * FROM table WHERE (date>='2006-09-13' AND date<='2006-09-20')
И по месяцу
SELECT * FROM table WHERE (date>='2006-09-01' AND date<='2006-09-30')

   
 
 автор: cheops   (22.09.2006 в 20:18)   письмо автору
 
   для: kasmanaft   (22.09.2006 в 19:50)
 

Последний запрос можно также модифицировать следующим образом
SELECT * FROM table WHERE (YEAR(`date`)=2006 AND MONTH(`date`)=9)

Если известен номер недели можно искользовать также функцию WEEK().

   
 
 автор: hin   (25.09.2006 в 16:04)   письмо автору
 
   для: cheops   (22.09.2006 в 20:18)
 

А есть аналог MONTH(`date`) для дня?? И еще в предыдущем посте там дата была вбита, а как это автоматизировать??

   
 
 автор: cheops   (25.09.2006 в 16:12)   письмо автору
 
   для: hin   (25.09.2006 в 16:04)
 

1) Да, функция называется DAYOFMONTH().
2) Не очень понятно, что нужно автоматизировать?

   
 
 автор: hin   (25.09.2006 в 16:30)   письмо автору
 
   для: cheops   (25.09.2006 в 16:12)
 


SELECT * FROM table WHERE (date>='2006-09-13' AND date<='2006-09-20')

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

SELECT * FROM table WHERE (date>=DAYOFMONTH(NOW()-7)  AND date<=NOW())

код явно неверный, но смысл передает,надеюсь

   
 
 автор: cheops   (25.09.2006 в 16:53)   письмо автору
 
   для: hin   (25.09.2006 в 16:30)
 

Точно также
SELECT * FROM table WHERE (date>=NOW() AND date<=NOW())

   
 
 автор: hin   (25.09.2006 в 17:14)   письмо автору
 
   для: cheops   (25.09.2006 в 16:53)
 

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

   
 
 автор: cheops   (25.09.2006 в 22:32)   письмо автору
 
   для: hin   (25.09.2006 в 17:14)
 

Тогда вам следует использовать приведённый вами запрос.

   
 
 автор: hin   (26.09.2006 в 09:43)   письмо автору
 
   для: cheops   (25.09.2006 в 22:32)
 

Спасибо буду пробывать

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования