目录
sql实现查找日期段的数据,在jsonApi实现按照时间段查询
sql实现查找日期段的数据,在jsonApi实现按照时间段查询
1、使用背景
需要筛选时间 例如:开始时间2023-04-19 - 2023-04-20
2、代码编写
// 错误代码:
SELECT createStartTime, createEndTime FROM table_name
WHERE createTime BETWEEN value1 AND value2;
错误原因:
使用BETWEEN导致日期筛选时获取不到2023-04-20 00:00:00之后的数据查询不到,只能查询到04-19的数据
// 正确语法
// #指定时间加n天 SELECT DATE_ADD(NOW(),INTERVAL-7 DAY)
// jsonApi中代码实现
#if("$!{creationStartTime}" !="" ) and creation_time BETWEEN '$!{creationStartTime}'
and DATE_SUB('$!{creationEndTime}' ,INTERVAL-1 DAY) #end
3、SQL语法 + jsonApi语法
1、查询column最后一个不能+ 逗号
// 模板写法
2、变量替换:$!{变量name}
3、参数模糊查询模板写法:#if("$!{name}" !="" ) and name like '%$!{name}%' #end
4、参数source 去匹配表中的 type_name:#if("$!{source}" !="") and type_name like '%$!{source}%' #end
5、检索表中指定数据插入到第一条:// UNION SELECT '$!{变量name}'
SELECT id FROM OC_User_Info
WHERE
1=1
#if("$!{ID}" != "") AND ID LIKE '%$!{ID}%' #end
AND Status = 0
#if("$!{checkedUser}" != "") UNION SELECT '$!{checkedUser}' #end // 如果有就插入,没有就不插入
6、根据时间段查找数据
//使用BETWEEN导致日期筛选时获取不到2023-04-20 00:00:00之后的数据查询不到,只能查询到04-19的数据
// 正确语法
#指定时间加n天 SELECT DATE_ADD(NOW(),INTERVAL-7 DAY)
// jsonApi中代码实现
#if("$!{creationStartTime}" !="" ) and creation_time BETWEEN '$!{creationStartTime}'
and DATE_SUB('$!{creationEndTime}' ,INTERVAL-1 DAY) #end