MySQL 时间比较

SELECT
u.Name,
u.IntelUserCode,
u.UserCode,
organizationname(6, sbi.Class) AS ClassName,
organizationname(1, sbi.Class) AS AcademyName,
sla.RecordId,
sla.LeaveReason,
sla.LeaveType,
bizname(sla.LeaveType) AS LeaveTypeName,
sla.Evidence,
sla.StartDate,
sla.EndDate,
sla.ClassNum,
sla.OutPlace,
bizname(sla.OutPlace) AS OutPlaceName,
sla.DetailAddress,
sla.EmergencyNumber,
sla.BizType,
sla.TaskCode,
sla.ApproveStatus,
sla.ApplyDate,
sla.LeaveDate,
(SELECT Name
FROM User
WHERE IntelUserCode = c.Counselor) AS CounselorName
FROM User u
JOIN StudentBasicInfo sbi ON sbi.IntelUserCode = u.IntelUserCode AND sbi.Status = u.Status
JOIN StudentLeaveApplication sla ON sla.IntelUserCode = sbi.IntelUserCode
JOIN Class c ON c.ClassCode = sbi.Class
WHERE u.Status = 1 AND u.Type = '2' AND sla.StartDate > '2017-02-01 00:00' AND sla.EndDate < '2017-02-15 00:00';

这种查询方式是无效的!

测试 “<” 是有效的,可是加上 “>” 后就失效了,具体原因待查!
我们来看表里的字段,奇葩的时间类型!
Paste_Image.png
Paste_Image.png

SELECT
u.Name,
u.IntelUserCode,
u.UserCode,
organizationname(6, sbi.Class) AS ClassName,
organizationname(1, sbi.Class) AS AcademyName,
sla.RecordId,
sla.LeaveReason,
sla.LeaveType,
bizname(sla.LeaveType) AS LeaveTypeName,
sla.Evidence,
sla.StartDate,
sla.EndDate,
sla.ClassNum,
sla.OutPlace,
bizname(sla.OutPlace) AS OutPlaceName,
sla.DetailAddress,
sla.EmergencyNumber,
sla.BizType,
sla.TaskCode,
sla.ApproveStatus,
sla.ApplyDate,
sla.LeaveDate,
(SELECT Name
FROM User
WHERE IntelUserCode = c.Counselor) AS CounselorName
FROM User u
JOIN StudentBasicInfo sbi ON sbi.IntelUserCode = u.IntelUserCode AND sbi.Status = u.Status
JOIN StudentLeaveApplication sla ON sla.IntelUserCode = sbi.IntelUserCode
JOIN Class c ON c.ClassCode = sbi.Class
WHERE u.Status = 1 AND u.Type = '2' AND DATEDIFF(substring(sla.StartDate, 1, 10), '2017-02-01') >= 0
AND DATEDIFF(substring(sla.EndDate, 1, 10), '2017-02-15') <= 0
LIMIT 0, 80

这会就可以了。
不过测试下这样也可以:

DATEDIFF(sla.StartDate, '2017-02-01') >= 0 AND
DATEDIFF(sla.EndDate, '2017-02-15') <= 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,980评论 0 23
  • 社会学家鲍尔莱说过句名言:一个人成熟的标志之一,就是明白每天发生在我们身边99%的事情,对于我们和别人而言,都是毫...
    二十少阅读 362评论 0 3
  • 我只想要抓住流年好好的说声再见,把青春刻下你们的笑脸,然后在那张泛黄的照片上找回那些年,那一天,属于我们所有人的回...
    墨雨斋阅读 710评论 2 5
  • 全凭兴趣自学画画的我这几天开始画人像,却发现五官比例根本不好掌握!画出来第一感觉就是这是人吗?! 没有素描基础,画...
    114痣多星阅读 1,153评论 8 10