我有一个带有ote_date(DATE)的加班表和一个带有emp_start_date(DATE)的雇员表。然而,回传的回传就像01-01-01 00:00:00而不是普通的01-01-01。
我使用laravel进行以下学说查询。
return Overtime::select('overtimes.*','overtimes.id as ote_id','first_name','last_name','middle_name','stat.name as stat_name','clt_name','cte_name', 'overtimes.ote_date as test')
->leftjoin('users','users.id','=','ote_user_id')
->leftjoin('employees','employees.emp_user_id','=','ote_user_id')
->leftjoin('clients','clt_id','=','emp_client_id')
->leftjoin('client_teams','cte_id','=','emp_client_team_id')
->leftjoin('options as stat','stat.id','=','ote_status_id')
->where('emp_isactive','=',1)
->where('emp_rehire','=',0)
->where('ote_date', '>=', 'emp_start_date');
查询的示例输出:
{"id":22808,"ote_user_id":1294,"ote_reason":"Holiday Premium","ote_date":"2019-08-12 00:00:00","ote_start_time":"21:00:00","ote_end_time":"06:00:00","ote_total_hours":"8.00","ote_status_id":123,"ote_whole_day":1,"created_at":"2019-08-15 12:58:54","created_by":1294,"updated_at":"2019-08-24 03:10:05","modified_by":1669,"deleted_at":null,"ote_id":22808,"first_name":"Dummy","last_name":"Dummy","middle_name":"Autor","stat_name":"Approved","clt_name":"Dummy","cte_name":"Sales Development Representative (SDR)","emp_start_date":"2019-08-12"}
您可以在我的数据上看到
“ ote_date”:“ 2019-08-12 00:00:00”
“ emp_start_date”:“ 2019-08-12”
它们都是DATE类型,那么另一个为什么返回DATETIME?
答案 0 :(得分:1)
我的第一反应是认为ote_date 必须被定义为某个地方的Timestamp列!?
(顺便说一句,是次要点和无关点,但是我注意到您的查询与示例输出并不完全匹配-查询的最后一列是“ overtimes.ote_date as test”,而查询的最后一列是输出为“ emp_start_date”)。
我猜您有一个目录查询来确认/演示ote_date被定义为Date?
我以前从未在任何SQL环境中遇到过您描述的行为。