2016-11-01 1 views
0

У меня есть следующий код:Проблем белой дата и две переменных

SELECT * FROM lc_t_ordenes 
WHERE fecha_registro between date(%s) and date(%s)+.9 
ORDER BY fecha_registro ASC 

Если дата между 2016-10-01 и 2016-10-30 он работает, но когда я пытаюсь найти только запись, когда дата 2016-10-31 работы это не распространяется.

В таблице указаны timestamp. Как найти записи между date1 (2016-10-01 00:00:00) и date2 (2016-10-01 23:59:59)?

Только положил 2016-10-01.

+0

Не можете ли вы использовать fecha_registro> = date1 AND fecha_registro <= date2 ?? –

+0

No does'nt work –

ответ

1

Как насчет этого кода:

SELECT * 
FROM your_table 
WHERE DATE(timestamp_column) = '2016-10-01'; 

Edit в код:

SELECT * FROM lc_t_ordenes 
WHERE DATE(fecha_registro) BETWEEN '2016-10-01' AND '2016-10-30' 
ORDER BY fecha_registro ASC; 

Ссылка: MySQL Date and Time Functions

+0

, но мне нужно использовать две переменные, потому что иногда пользователю нужно искать между двумя датами и другими только за один день –

+0

Я отредактировал свой ответ. – Hermanto

+0

спасибо, он работает –

0

Вы должны вставить дату в формате времени добавить 00:00:00 И '23: 59: 59 'в вашей переменной и преобразовать этот формат в формат даты с помощью функции strtodate Простите за любую ошибку, я не php парень :)

$date1 = new DateTime('2012-05-29'); 
$date2 = new DateTime('2012-05-29'); 
$date1= $date1->format("Y-m-d H:i:s"); 
$date2->modify("+23 hours"); 
$date2->modify("+59 minutes"); 
$date2->modify("+59 seconds"); 
$date2= $date2->format("Y-m-d H:i:s");