【问题标题】:Problems white date and two variables问题白色日期和两个变量
【发布时间】:2016-11-01 03:59:01
【问题描述】:

我有下一个代码:

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

【问题讨论】:

  • 你不能使用 fecha_registro >= date1 AND fecha_registro
  • 没有不行

标签: php mysql date timestamp


【解决方案1】:

这段代码怎么样:

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 Date and Time Functions

【讨论】:

  • 但我需要使用两个变量,因为有时用户需要在两个日期和其他日期之间查看一天
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多