【问题标题】:MySQL: str_to_date function showing incorrect datetime valueMySQL:str_to_date 函数显示不正确的日期时间值
【发布时间】:2017-05-14 19:34:50
【问题描述】:

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

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

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

我的桌子:

我的查询:

精确的 MySql 查询:

UPDATE `define_testing` set `column_1637` = DATEDIFF(STR_TO_DATE(`column_45`,"%m/%d/%Y"),STR_TO_DATE(`column_14`,"%m/%d/%Y")) where id > 1

谁能告诉我怎么回事?

【问题讨论】:

  • 你的专栏真的是这样命名的吗?这将是一场噩梦。
  • 这是临时表。在我的情况下,列名将是动态的...
  • 正如您在错误消息中看到的,日期值之一导致了问题。您可以手动输出查询并将其添加到问题中吗?执行的确切查询会很有帮助。
  • 检查我的更新。
  • datevalue 导致错误,因为一些字符串形式的数据NoActive,但它在 phpmyadmin 中工作正常..

标签: mysql laravel


【解决方案1】:

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

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');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多