DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= DATE(u.service_expiration_time) 这段SQL查询不到剩余30天的数据
时间: 2024-04-14 14:26:16 浏览: 102
抱歉,我理解你的意思了。如果你要剩余30天的数据你可以将查询条件中的间隔从90天改为30天。请将这段代码修改为:
```
DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= DATE(u.service_expiration_time)
```
这样修改后,查询结果将包括剩余30天的数据。请确保数据库中的日期格式与查询条件匹配,并且考虑时区的影响。
相关问题
DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= DATE(u.service_expiration_time) 这段sql查询出来的条件不符合剩余30天的数据
我明白你的意思了。如果你想查询剩余30天的数据,可以使用以下条件:
```sql
DATEDIFF(u.service_expiration_time, CURDATE()) <= 30
```
这个条件将计算当前日期(CURDATE())与服务到期日期(u.service_expiration_time)之间的天数差,并检查是否小于等于30天。这样就可以筛选出剩余30天的数据。请确保数据库中的日期格式正确,并考虑时区的影响。
SELECT u.id,u.username,u.password,u.name,u.sex,u.mobile,u.status,u.top_office_id,u.office_id,u.iconName,create_time,u.service_expiration_time, (SELECT l.logoAddress FROM t_sys_logo l WHERE u.iconName=l.iconName) as icon,u.user_photo as userPhotoUrl, (SELECT o.office_name FROM t_office o WHERE o.id = u.office_id) AS officeName, (SELECT o.office_logo FROM t_office o WHERE o.id = u.top_office_id) as officeLogoUrl, (SELECT o.office_name FROM t_office o WHERE o.id =u.top_office_id) as topOfficeName, uu.is_sys_role as sysRole,uu.role_id_list as roleIdList,uu.role_name_list as roleNameList FROM t_sys_user u left join (select tr.user_id,sum(sr.is_sys_role) is_sys_role,GROUP_CONCAT(sr.id) role_id_list,GROUP_CONCAT(sr.role_name) role_name_list from t_sys_role sr ,t_sys_user_roles tr where tr.del_flag=1 and tr.role_id=sr.id GROUP BY tr.user_id) uu on u.id=uu.user_id where DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= DATE(u.service_expiration_time) AND u.del_flag = 1 ORDER BY u.service_expiration_time is null , u.service_expiration_time
这是一个查询语句,用于检索用户信息。它从表t_sys_user中选择了一些列,并连接了其他表来获取相关信息。查询的结果按照服务过期时间进行排序。
注意:这是一个复杂的查询语句,包含了子查询和嵌套查询。具体的查询逻辑可能需要结合数据库结构和数据来进行分析和调整。如果需要更详细的说明或修改,请提供更多的信息。
阅读全文