sql - SQL:日期类型数据返回日期时间值
问题描述
我有一个带有 ote_date (DATE) 的加班表和带有 emp_start_date (DATE) 的员工表。然而 ote 正在像 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?
解决方案
我的第一反应是认为 ote_date必须以某种方式定义为时间戳列!?
(顺便说一句,一个小点和无关的点,但我注意到您的查询与您的示例输出不太匹配 - 查询中的最后一列是“overtimes.ote_date as test”,而输出中的最后一列是“ emp_start_date")。
我猜你有一个目录查询确认/证明 ote_date 被定义为日期?
我之前在任何 SQL 环境中都没有遇到过您描述的行为。
推荐阅读
- swift - YouTube 原生在 Swift 应用程序中?
- java - Java产品是否部署在字节码阶段?
- apache-spark - Spark - “部分”窗口函数
- html - Remove hairline border in elements in chrome mobile mode
- docker - docker 命令有什么问题?
- java - 基于历史数据的图表图像生成?
- string - 如何在 python 中使用字符串引用类?
- java - I cannot attach fragment the second time arround
- clojurescript - devtools.core not found after including cljs-ajax
- dm-script - 通过选择两个或多个图像的最低强度的像素来创建新图像