MySQL:str_to_date函数显示错误的日期时间值

时间:2016-12-30 13:42:46

标签: mysql laravel

奇怪但我无法理解到底发生了什么。我只是想通过计算两个日期之间的差异来更新我的列值。我有两列日期column_45column_14两列的日期格式为4/8/20114/8/2009现在我正在使用DATEDIFF()函数计算两个日期之间的差异并更正我正在使用STR_TO_DATE()函数的日期格式。当我从phpmyadmin运行查询时,一切正常,当我从laravel项目运行同一查询时,显示错误:

  

日期时间值不正确:函数str_to_date为'否'(SQL:UPDATE define_testing set column_1637 = DATEDIFF(STR_TO_DATE(column_45,“%m /%d /%Y”),STR_TO_DATE({ {1}},“%m /%d /%Y”))其中id> 1)

我知道我的列中有一些字符串值,但它应该在phpmyadmin中也显示相同,但​​它在phpmyadmin中工作正常。

我的表:

enter image description here

更改为MyQuery: enter image description here

Exact MySql查询:

column_14

任何人都可以告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

尝试使用返回布尔值的raw queries DB::statement

DB::statement('UPDATE '. $table .' set column_'. $colCount .' = DATEDIFF(STR_TO_DATE('.$value->col_one.',"%m/%d/%Y"),STR_TO_DATE('.$value->col_two.',"%m/%d/%Y")) where id > 1');