如果我直接在 PHPMyadmin 上运行它,但当我使用 laravel 运行它时,我有以下查询。
select SUM(p.quantity_held * s.current_share_price) as mv
from portfolio_holding p, portfolios po, securities s
where `p`.`security_id` = s.security_id and `po`.`portfolio_id` = p.portfolio_id
and `po`.`status_id` in (1, 2)
and (`p`.`sell_date` is null or `p`.`sell_date` = '0000-00-00' or `p`.`sell_date` > now())
and s.security_id <> 0
limit 1
它抛出以下错误:
SQLSTATE [HY000]:一般错误:1525 日期值不正确:''0000-00-00'
我已在数据库中将 mysql_mode 设置为 ALLOW_INVALID_DATES。
在 laravel 中执行我的查询之前,也使用以下一个:
DB::statement("设置会话 sql_mode='ALLOW_INVALID_DATES'");
在 laravel conig/database.php 中,严格模式也设置为 false,但上面的查询仍然会抛出错误。