【问题标题】:Change date format when adding where condition to the query向查询添加 where 条件时更改日期格式
【发布时间】:2018-12-18 09:07:18
【问题描述】:

数据库:

   | date_paid (int) |
    1535558400
    1539532800

我正在尝试查询以下内容,但我收到日期部分的 SQL 语法错误。

    $id = $this->input->post('id');
    $date = $this->input->post('date');

    $this->db->where('id',$id);
    $this->db->where('DATE_FORMAT(date_paid, "%Y-%m-%d")',$date);
    $query=$this->db->get('payments');
    $result=$query->row();

有什么方法可以更改date_paid 列的日期格式,以便我可以将其与$this->input->post('date') 数据进行实际比较?

错误日志:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2018-10-30'' at line 4

我正在尝试修改现有的 Web 应用程序,这就是为什么我尽可能不想更改列 date_paid 的数据类型

提前致谢

【问题讨论】:

  • 请完整显示错误信息
  • 请问date_paid列是什么数据类型
  • 还有你从​​post数组得到的date是什么格式
  • 请参阅编辑后的帖子
  • 和用户输入日期的格式也很相关

标签: php mysql codeigniter


【解决方案1】:

请这样使用

 DATE_FORMAT(FROM_UNIXTIME(`date_paid`), '%Y-%m-%d') AS 'date_changed'

您可以参考here

【讨论】:

  • 您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“FROM (payments) WHERE id = '28' AND date_formated = '2018-10-30' 附近使用正确的语法
  • 你引用了我给定的链接吗?
【解决方案2】:

你需要使用

DATE_FORMAT(FROM_UNIXTIME(date_paid), '%Y-%m-%d') AS 'date_formatted'

类似:

$id = $this->input->post('id');
$date = $this->input->post('date');

$this->db->select("DATE_FORMAT(FROM_UNIXTIME(`date_paid`), '%Y-%m-%d') AS date_formatted");
$this->db->from('payments');
$this->db->where("DATE_FORMAT(FROM_UNIXTIME(`date_paid`), '%Y-%m-%d') = " . $date, '', false);

$result = $q->row();

【讨论】:

  • 您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'FROM (payments) WHERE id = '28' AND date_formated = '2018-10-30' 附近使用正确的语法
  • @RonaldTorres 更新了查询。
【解决方案3】:

使用下面的语法

select convert(varchar(4), year(ColumnDate))+'/'+convert(varchar(4), month(ColumnDate))+'/'+convert(varchar(4), day(ColumnDate))来自 YourTable

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2021-09-19
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2016-02-17
    相关资源
    最近更新 更多