【发布时间】:2018-12-05 11:16:05
【问题描述】:
我正在尝试更新日期列与当前年份和月份匹配的数据库表上的记录。我不断收到此错误
日期时间值不正确:“created_at”列的“%2018-06%”
这就是我正在做的事情
$current_month = date("Y-m");
$points = 4;
$freelancer_id =4;
$update = "UPDATE monthly_limits SET points = :points WHERE freelancer_id = :freelancer_id AND
created_at LIKE concat('%', :current_month, '%')";
$query = $this->db->prepare($update);
$query->bindParam("points", $points);
$query->bindParam("current_month", $current_month);
$query->bindParam("freelancer_id", $freelancer_id);
$query->execute();
请问我该如何解决?
【问题讨论】:
-
你遇到了什么错误?
-
你用的是什么数据库?
-
您最好使用
YEAR(created_at) = :year AND MONTH(created_at) = :month,并传入date('Y')作为年份和date('m')作为月份。 -
不知道,但无论如何,在左侧使用通配符对索引不起作用。
-
你用的是什么mysql版本?我从未见过
where中的日期/日期时间列出现该错误。如果您尝试设置日期/日期时间列,我可以设置它。