【问题标题】:Codeigniter date comparisionCodeigniter 日期比较
【发布时间】:2016-04-12 17:11:05
【问题描述】:

我已经搜索了论坛,但无法让这个查询工作。它返回一个空数组。如果我删除 WHERE 部分,它工作正常...

这是$this->db->last_query()的输出:

  SELECT `buchungen`.*, `rechnungen`.`sent_count`, `rechnungen`.`zahlungsdatum`, `rechnungen`.`last_modified`
  FROM (`buchungen`)
  LEFT JOIN `rechnungen` ON `rechnungen`.`buchungs_id` = `buchungen`.`id`
  WHERE `buchungen`.`datum` >= '2016-03-13 12:00:00'
  AND `buchungen`.`datum` <= '2016-03-13 12:00:00'

【问题讨论】:

  • 您正在比较一个不能大于或小于的字符串,只有整数可以做到这一点。使用函数DATE('2016-03-13 12:00:00')
  • datum字段的数据类型是什么?

标签: php codeigniter datetime


【解决方案1】:

试试:

SELECT `buchungen`.*, `rechnungen`.`sent_count`, `rechnungen`.`zahlungsdatum`, rechnungen.last_modified
FROM (`buchungen`) 
LEFT JOIN `rechnungen` ON `rechnungen`.`buchungs_id` = `buchungen`.`id` 
WHERE `buchungen`.`datum` BETWEEN CAST('2016-03-13 12:00:00' AS DATETIME) 
AND CAST('2016-03-13 12:00:00' AS DATETIME)

-假设您将datum 保存为DATETIME

【讨论】:

    【解决方案2】:

    试试这个

    $this->db->query("SELECT buchungen.*, rechnungen.sent_count, rechnungen.zahlungsdatum, rechnungen.last_modified
                      FROM buchungen
                      LEFT JOIN rechnungen 
                      ON rechnungen.buchungs_id = buchungen.id
                      WHERE buchungen.datum >=  date('Y-m-d H:i:s', strtotime('2016-03-13 12:00:00'))
                      AND buchungen.datum <= date('Y-m-d H:i:s', strtotime('2016-03-13 12:00:00'))");
    

    【讨论】:

    • 你检查了吗??
    猜你喜欢
    • 2016-03-04
    • 1970-01-01
    • 2012-02-08
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多