1. 统计指定日期数据
SELECT COUNT(*) AS COUNT_COUNT_ADD FROM SHLD_DEVICE WHERE
CREATE_TIME >= TO_DATE('2021-11-18 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND CREATE_TIME <= TO_DATE('2021-11-18 23:59:59','yyyy-mm-dd hh24:mi:ss');
因为字段为日期类型,所以需要将查询条件的字符串转为日期类型。将查询条件转换为字段一致的数据类型,而不是将字段类型转换为查询条件的类型,这样可以利用在字段上建立的索引,可以提高效率。
日期格式转换:
select to_date('2021-12-29 10:14:59','yyyy-mm-dd hh24:mi:ss') as CURT_DATE from dual;
返回输出:
2021-12-29 10:14:59
其中hh24表示按二十四小时制返回两位小时,mi表示两位表示分钟数。
2. 统计指定日期以前的累计数据
SELECT COUNT(*) AS COUNT_COUNT_ADD FROM SHLD_DEVICE WHERE
CREATE_TIME <= TO_DATE('2021-11-18 23:59:59','yyyy-mm-dd hh24:mi:ss');
3. 统计指定日期分组数据
SELECT BRANCH_CODE, COUNT(*) AS COUNT_COUNT_ADD FROM SHLD_DEVICE WHERE
CREATE_TIME >= TO_DATE('2021-11-18 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND CREATE_TIME <= TO_DATE('2021-11-18 23:59:59','yyyy-mm-dd hh24:mi:ss')
GROUP BY BRANCH_CODE;
分组统计时,需要同时返回分组列的值。
4. 统计指定日期以前的累计分组数据
SELECT BRANCH_CODE, COUNT(*) AS COUNT_COUNT_ADD FROM SHLD_DEVICE WHERE
CREATE_TIME <= TO_DATE('2021-11-18 23:59:59','yyyy-mm-dd hh24:mi:ss')
GROUP BY BRANCH_CODE;
分组统计时,需要同时返回分组列的值。
5. 指定日期按分组统计锁定状态
SELECT BRANCH_CODE, COUNT(*) AS COUNT_COUNT_ADD FROM SHLD_DEVICE WHERE
UPDATE_TIME >= TO_DATE('2021-11-18 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND UPDATE_TIME <= TO_DATE('2021-11-18 23:59:59','yyyy-mm-dd hh24:mi:ss')
AND LOCK_STATUS = 'Y'
GROUP BY BRANCH_CODE;
状态更新时,更新时间会进行同步更新。
6. 指定日期前到期时间分组统计
SELECT BRANCH_CODE, COUNT(*) AS COUNT_COUNT_ADD FROM SHLD_DEVICE WHERE
EXPIRE_TIME <= TO_DATE('2021-11-18 23:59:59','yyyy-mm-dd hh24:mi:ss')
GROUP BY BRANCH_CODE;
到期状态会变化的情况下,不能用一周内每天的到期数量进行累加得到周的到期,因为出现到期后,会出现有客户重新申请更新Token导致其到期时间的变化。
锁定状态,关闭状态等都是一样的,会出现一段时间内存在状态变化的情况。