[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка из базы в интервале дат
Страницы: 1, 2
sx000
Не люблю я эти даты :) наверное потому что не умею их готовить.

входные значения:
dat_initial=18.11.2013&dat_final=18.11.2013

$date_initial_ex = explode(".",$date_initial);
$date_final_ex = explode(".",$date_final);
// преобразуем в unix
$unix_initial = mktime(0,0,0,$date_initial_ex[1],$date_initial_ex[0],$date_initial_ex[2]);
$unix_final = mktime(date("H"),date("i"),date("s"),$date_final_ex[1],$date_final_ex[0],$date_final_ex[2]);
$query = "SELECT * FROM `$mashins_table` WHERE (data > $unix_initial AND data < $unix_final)";
$res = mysql_query($query) or die(mysql_error());
echo mysql_num_rows($res);


А от чего выводит он пустые строки мне?
Формат data TIMESTAMP, как бы данные есть в таблице говорит что 0 записей
rooor
$date_initial_ex = explode(".",$date_initial);
$date_final_ex = explode(".",$date_final);

$unix_initial = $date_initial_ex[2] . '-' . $date_initial_ex[1] . '-' . $date_initial_ex[0] . ' 00:00:00';
$unix_final = $unix_final[2] . '-' . $unix_final[1] . '-' . $unix_final[0] . ' ' . date('H:i:s');

$res = mysql_query("SELECT * FROM `" . $mashins_table . "` WHERE `data` BETWEEN '" . $unix_initial . "' AND '" . $unix_final . "'") or die(mysql_error());
echo mysql_num_rows($res);

Цитата
WHERE `data`

а точно data, а не date?
sx000
не тоже дает 0
sx000
`data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP параметры поля
вот такой запрос идет
запрос: SELECT * FROM `base` WHERE `data` BETWEEN 1384729200 AND 1384793280
rooor
я же тебе написал пример, ты его запускал?
TIMESTAMP - строка, а ты её с числами сравниваешь
sx000
да 0 по твоему методу тоже
sx000
я сам уже измучался с этой выборкой smile.gif если честно
Игорь_Vasinsky
вот я чтобы не париться для дат всегда использую DATETIME

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sx000
я не нашел в топе гугла как выборку сделать по датам именно на дата тайм
rooor
покажи как выглядит запрос из моего примера
Игорь_Vasinsky
select * from table where `date` BETWEEN '22-04-2010 21:00:12' and '22-05-2010 21:00:12'


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sx000
$unix_initial = $date_initial_ex[2] . '-' . $date_initial_ex[1] . '-' . $date_initial_ex[0] . ' 00:00:00';
$unix_final = $unix_final[2] . '-' . $unix_final[1] . '-' . $unix_final[0] . ' ' . date('H:i:s');

$res = mysql_query("SELECT * FROM `" . $mashins_table . "` WHERE `data` BETWEEN '" . $unix_initial . "' AND '" . $unix_final . "'") or die(mysql_error());


копи пасть из кода
rooor
не, сам запрос распечатай...
echo "SELECT * FROM `" . $mashins_table . "` WHERE `data` BETWEEN '" . $unix_initial . "' AND '" . $unix_final . "'";
Valick
Цитата
вот я чтобы не париться для дат всегда использую DATETIME

это же непрофессионально smile.gif
решение принимается в соответсвии с задачей, а не задача подгоняется под решение
хотя как сказал один мудрый человек, в каждой работе должна быть доля по-изма smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
sx000
SELECT * FROM `installer` WHERE `data` BETWEEN '2013-11-18 00:00:00' AND '-- 18:17:40
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.