问题是白枣和两个变量


Problems white date and two variables

我有下一个代码:

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

当日期在2016-10-012016-10-30之间时,它可以工作,但当我试图只查找日期为2016-10-31时的记录时,它不起作用。

表日期为timestamp。如何查找date1 (2016-10-01 00:00:00)date2 (2016-10-01 23:59:59)之间的记录?

用户只放2016-10-01 .

下面的代码如何:

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

编辑到你的代码:

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

参考:MySQL日期和时间函数

您应该以时间格式插入日期在变量中添加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");