统计一个月内每天特定时间段(如09:00:00-17:00:00)的记录总数sql

数据库采用Oracle,现有表Loginlog 表中有字段loginTime(varchar2)用于存时间,
时间格式yyyy-MM-dd  HH:MM:SS,现在需要根据loginTime
查询本月每天09:00:00到17:00:00的记录总条数,这个SQL语句应该怎么写?

select count(1) from Loginlog where to_char(loginTime,'YYYYMM') = to_char(sysdate,'YYYYMM') and to_char(loginTime,'HH24') between '09' and '14'

SELECT count(1) FROM dbo.Loginlog WITH(NOLOCK)
WHERE CONVERT(NVARCHAR(7),loginTime,20) = CONVERT(NVARCHAR(7),GETDATE(),20)
AND CONVERT(NVARCHAR(8),loginTime,108) BETWEEN '09:00:00' AND '17:00:00'
ORDER BY loginTime

这个是sql的写法..加个每天的group by 就行了

(先查询出每天9-17的详细数据 在按月统计,我的user_code是主键,log_time是datetime类型。此查询不包括21:00:00的数据)
SELECT
COUNT(s.主键),
DATE_FORMAT(s.h, "%Y-%m 9:00:00-21:00:00")
FROM
(SELECT
主键,
DATE_FORMAT(log_time, "%Y-%m-%d %H:00") h
FROM
user_login_error
WHERE DATE_FORMAT(log_time, "%H:00:00") >= '09:00:00'
AND DATE_FORMAT(log_time, "%H:00:00") < '21:00:00') s
GROUP BY DATE_FORMAT(s.h, "%Y-%m") ;
图片说明