DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= DATE(u.service_expiration_time) 这段SQL查询不到剩余30天的数据
时间: 2024-04-14 14:26:16 浏览: 15
抱歉,我理解你的意思了。如果你要剩余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天的数据。请确保数据库中的日期格式正确,并考虑时区的影响。
date_sub(curdate(),interval 30 day)<=date_column在mapper中不能使用吗
可以使用,可以在xml中使用如下语句:
```xml
<if test="startDate != null and endDate != null">
AND date_column BETWEEN #{startDate} AND #{endDate}
</if>
<if test="startDate != null and endDate == null">
AND date_column >= #{startDate}
</if>
<if test="startDate == null and endDate != null">
AND date_column <= #{endDate}
</if>
<if test="startDate == null and endDate == null">
AND date_column >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
</if>
```
其中,`startDate`和`endDate`是java中的Date类型,可以在Java代码中将其转换为字符串,然后传递给Mapper。