Laravel版本是5.4
MySQL 是阿里云的 MySQL5.6
下面表的 time 字段的类型是 timestamp, 默认值是 '0000-00-00 00:00:00'
select * from table where time="0000-00-00" order by id
这条语句直接在MySQL的命令行直接执行是能查出结果的。
但是在Laravel中使用下面这两种方式都查不出结果:
$query = TableModel::where('time','0000:00:00')
->orderByDesc('id')
->get();
$query = \DB::select('select * from table where time="0000-00-00" order by id');
奇怪的是,上面两种方式去掉 order by
或者把where条件换成其他字段就能查出结果了。
Laravel 的 config 下的
database.php
strict
设为false
就好了