【问题标题】:MySQL select date with a format in codeigniterMySQL在codeigniter中选择日期格式
【发布时间】:2016-09-10 12:56:58
【问题描述】:

我的 Codeigniter 站点从下表中选择日期,如下所示。

$this->db->select('reg_id, fname, lname, added_date');// working

MYSQL 数据库已添加_dateformat 为2016-09-10 14:44:46 现在我想从表格式中选择数据应该是2016-09-10 14:44 PM

单独选择日期可以得到格式

SELECT DATE_FORMAT(added_date, '%Y-%m-%d %h:%i %p') FROM tble_reg

那么如何选择added_date相关格式的其他列

$this->db->select('reg_id, fname, lname, DATE_FORMAT(added_date, '%Y-%m-%d %h:%i %p')'); 
//not working

【问题讨论】:

  • 您需要准确解释您的查询是如何“不工作”的——您是否收到错误消息,您是否以您不期望的格式获得输出,您是否根本没有得到任何输出?此外,如果您能告诉我们您的表格的结构,也许还有一些示例数据条目,那会很有帮助。
  • 如果您查看突出显示,您会发现当您使用单引号指定日期格式时,您退出了整个选择查询的字符串。您可以使用双引号代替" 或转义它们DATE_FORMAT(added_date, \'%Y-%m-%d %h:%i %p\')

标签: php mysql codeigniter


【解决方案1】:

将换行符分成两个选择语句

$this->db->select('reg_id, fname, lname');
$this->db->select(DATE_FORMAT(added_date, '%Y-%m-%d %h:%i %p') AS added_date);

或将" 与日期格式一起使用

$this->db->select('reg_id, fname, lname, DATE_FORMAT(added_date, "%Y-%m-%d %h:%i %p")  AS added_date ');

【讨论】:

  • @Sparten 刹车线时会出错Parse error: syntax error, unexpected 'AS' (T_AS)
  • $this->db->select('DATE_FORMAT(added_date, "%Y-%m-%d %h:%i %p") AS added_date'); 试试这个
  • @Sparten 我仍然有错误syntax to use near ':%i %p") AS added_date FROM (tble_reg)
  • 在此处添加您的查询
  • @Sparten 只是在末尾添加了 false 参数。现在工作正常。但是不知道为什么? $this->db->select('DATE_FORMAT(added_date, "%Y-%m-%d %h:%i %p") as added_date', FALSE);
【解决方案2】:

这是推测,但您可能会让单引号相互竞争。这行得通吗?

$this->db->select('reg_id, fname, lname, DATE_FORMAT(added_date, "%Y-%m-%d %h:%i %p") as added_date');

MySQL 允许字符串分隔符使用单引号和双引号,这在应用层需要单引号分隔字符串的情况下非常方便。

【讨论】:

  • 我是否从(匿名)反对票中假设这不起作用?
【解决方案3】:

答案有一点点错误。以下代码正在最后添加FLASE 作为参数。 explanation on here.

$this->db->select('reg_id, fname, lname');
$this->db->select('DATE_FORMAT(added_date, "%Y-%m-%d %h:%i %p") as added_date', FALSE);

【讨论】:

    猜你喜欢
    • 2016-07-07
    • 1970-01-01
    • 2018-08-22
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2012-05-25
    相关资源
    最近更新 更多