在向查询添加where条件时更改日期格式

rbl8hiat  于 2021-06-15  发布在  Mysql
关注(0)|答案(3)|浏览(617)

数据库:

| 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 提前谢谢

y1aodyip

y1aodyip1#

使用下面的语法
从表中选择convert(varchar(4),year(columndate))+'/'+convert(varchar(4),month(columndate))+'/'+convert(varchar(4),day(columndate))

eqzww0vc

eqzww0vc2#

你需要使用
日期格式(从unixtime开始)( date_paid ),“%y-%m-%d”)作为“日期\u格式”
比如:

$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();
ha5z0ras

ha5z0ras3#

请这样用

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

你可以参考这里

相关问题