Выборка диапазона по полю datetime

Статус
В этой теме нельзя размещать новые ответы.

Styler

Новичок
Выборка диапазона по полю datetime

Есть таблица в MySQL - в ней большое количество записей. Одно из полей каждой записи - в формате datetime
Мне нужно путем задания через форму диапазона делать выборки из этой таблицы - например все записи между датами 26.10.2005 и 30.10.2005 - не обращая внимания на часы, минуты и секунды.

Как правильно построить запрос и нужно ли делать какое то приведение переменных ?
 

Styler

Новичок
Так не будет работать в случае если для первой даты нет записей в таблице.
То есть я указывал промежуток с 26.10.2005 по 30.10.2005 а у меня есть записи только с 27 числа.
 

Styler

Новичок
Panchous пробовал так :

$start_time=$year_start."-".$month_start."-".$day_start." 00:00:00";
$end_time=$year_end."-".$month_end."-".$day_end." 00:00:00";

$result=mysql_query("SELECT * FROM radacct WHERE UserName='$username' AND AcctStartTime >= $start_time AND AcctStartTime <= $end_time");
 

Panchous

Павел
покажи чистый SQL-запрос.
что он должен выбирать, и что выбирает...
 

Styler

Новичок
SELECT * FROM radacct WHERE UserName='alexey' AND AcctStartTime >= 2005-09-26 00:00:00 AND AcctStartTime <= 2005-09-27 00:00:00
- вот такой запрос

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

Styler

Новичок
SELECT * FROM radacct WHERE UserName='alexey' AND AcctStartTime >= '2005-09-26 00:00:00' AND AcctStartTime <= '2005-09-27 00:00:00'

Тот же эффект.
 

Styler

Новичок
Panchous ошибка "mysql_fetch_object(): supplied argument is not a valid MySQL result resource" после $row=mysql_fetch_object($result);
 

Styler

Новичок
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:00 AND AcctStartTime <= 2005-09-27 00:00:00' at line 1
 

Styler

Новичок
Поставил правильно кавычки - теперь просто нулевой результат.
 

Styler

Новичок
$result=mysql_query("SELECT * FROM radacct WHERE UserName='$username' AND DATE(AcctStartTime) >= '".$start_time."' AND DATE(AcctStartTime) <= '".$end_time."'");

Показывает только поля для последней даты - из диапазона 26.10.2005 по 27.10.2005 только для 27
Записи есть и для 26 тоже.
 

antson

Новичок
Партнер клуба
Styler
возможно за 26 число твой алексей ничего и не делал
а вот 27 в 2 минуты первого данные есть, но :)
в общем 27 число если тебе нужно то оно кончается в 23:59:59
 

Styler

Новичок
antson за 26 даты есть :) база под рукой. Мне нужен диапазон именно.
Panchous SELECT * FROM radacct WHERE UserName='alexey' AND DATE(AcctStartTime) >= '2005-09-25' AND DATE(AcctStartTime) <= '2005-09-27'

Извлекает только за 27 число.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху