【问题标题】:CodeIgniter: select datetime gives wierd returnCodeIgniter:选择日期时间给出奇怪的回报
【发布时间】:2011-11-07 20:57:11
【问题描述】:

这是我的代码,我从 tblTest 中询问了 end_date。 end_date 是日期时间。 这是代码,但它给了我一个错误:

$this->db->select(date('end_date'));
$this->db->where('topActive', 'true');
$this->db->order_by('end_date');
$this->db->group_by('end_date');
$q = $this->db->get('tblTest');

错误:

Unknown column 'UTC1107_07pm30UTC' in 'field list'
SELECT `UTC1107_07pm30UTC` 
FROM (`tblTest`) 
WHERE `topActive` = 'true' 
GROUP BY `UTC1107_07pm30UTC` 
ORDER BY `UTC1107_07pm30UTC`

我做错了什么?

谢谢

【问题讨论】:

    标签: php codeigniter datetime


    【解决方案1】:

    在您的 select 方法中,您传递了一个日期对象。此方法接受您需要返回的列的名称。 end_date 是你的列名,所以使用它。

    $this->db->select('end_date');
    

    更新

    这是最终工作的查询:

    $this->db->select("DATE(end_date) as my_end_date", FALSE);
    $this->db->where('topActive', 'true');
    $this->db->order_by('my_end_date');
    $this->db->group_by('my_end_date');
    $q = $this->db->get('tblTest');
    

    【讨论】:

    • 好的,谢谢,但问题是(上面没有写这个)。我想按日期分组,'end_date' 是日期时间(Y-m-d H:i:s),我只想要日期(Y-m-d)
    • 哦,好的 - 那么您需要将 date 函数作为字符串传递,以便将其解释为 mysql DATE 函数而不是 php date 函数并传递 @987654327 @ 作为要选择的第二个参数。 $this->db->select("DATE('end_date')", FALSE);——附言按照惯例,我会将 mysql 函数大写以帮助将其与 php 函数区分开来。
    • 对不起,但它确实有效,这是我从 print_r 得到的:[date('end_date')] =>
    • 哎呀,别名:$this->db->select("DATE('end_date') as my_end_date", FALSE); -- 然后在 group_by 和 order_by 方法中将 end_date 更改为 my_end_date。
    • 还是什么都没有:[my_end_date] =>
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多