|
|
|
| Народ а можно ли так реализовать, чтобы скрипт обращался к БД где есть столбец Date и делал выбокурку только данные сегодняшнего числа, список данных за неделю, за месяц.
В голову пришло только такой способ
Select * from files where date=Now() /// для сегодняшнего дня
|
А как дальше не знаю. Помогите | |
|
|
|
|
|
|
|
для: 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')
|
| |
|
|
|
|
|
|
|
для: hin
(20.09.2006 в 14:58)
| | Столбец date какой тип имеет? | |
|
|
|
|
|
|
|
для: cheops
(20.09.2006 в 20:28)
| | Пока не какой, я только собираюсь начать писать скрипт, поэтому сразу спросил, чтобы потом не переделовать | |
|
|
|
|
|
|
|
для: hin
(21.09.2006 в 12:51)
| | Тогда делайте его типа DATE, в этом случае, ваш запрос будет работать корректно, однако точность значений будет до дней, часы и минуты вам будут уже не доступны. | |
|
|
|
|
|
|
|
для: cheops
(21.09.2006 в 13:05)
| | С типом все понятно, а как осуществлять сортировку?? Точнее выборку, по сегодняшнему дню, по прошедшей недели, и по месяцу??? | |
|
|
|
|
|
|
|
для: 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') | |
|
|
|
|
|
|
|
для: kasmanaft
(22.09.2006 в 19:50)
| | Последний запрос можно также модифицировать следующим образом
SELECT * FROM table WHERE (YEAR(`date`)=2006 AND MONTH(`date`)=9)
|
Если известен номер недели можно искользовать также функцию WEEK(). | |
|
|
|
|
|
|
|
для: cheops
(22.09.2006 в 20:18)
| | А есть аналог MONTH(`date`) для дня?? И еще в предыдущем посте там дата была вбита, а как это автоматизировать?? | |
|
|
|
|
|
|
|
для: hin
(25.09.2006 в 16:04)
| | 1) Да, функция называется DAYOFMONTH().
2) Не очень понятно, что нужно автоматизировать? | |
|
|
|
|
|
|
|
для: 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())
|
код явно неверный, но смысл передает,надеюсь | |
|
|
|
|
|
|
|
для: hin
(25.09.2006 в 16:30)
| | Точно также
SELECT * FROM table WHERE (date>=NOW() AND date<=NOW())
|
| |
|
|
|
|
|
|
|
для: cheops
(25.09.2006 в 16:53)
| | Так он будет выбирать только сегодняшние записи, а мне нужно чтобы от сегодняшнего дня минус текущая дата 7 дней.Тоесть выборка должна быть по сегодняшнему дню,прошедшей недели,прошедшему месяцу. | |
|
|
|
|
|
|
|
для: hin
(25.09.2006 в 17:14)
| | Тогда вам следует использовать приведённый вами запрос. | |
|
|
|
|
|
|
|
для: cheops
(25.09.2006 в 22:32)
| | Спасибо буду пробывать | |
|
|
|