SQL:DATE类型数据返回DATE TIME VALUE

时间:2020-08-26 07:21:58

标签: sql laravel

我有一个带有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?

1 个答案:

答案 0 :(得分:1)

我的第一反应是认为ote_date 必须被定义为某个地方的Timestamp列!?

(顺便说一句,是次要点和无关点,但是我注意到您的查询与示例输出并不完全匹配-查询的最后一列是“ overtimes.ote_date as test”,而查询的最后一列是输出为“ emp_start_date”)。

我猜您有一个目录查询来确认/演示ote_date被定义为Date?

我以前从未在任何SQL环境中遇到过您描述的行为。