SQL如何按时间段查询
现有一张表名为Record时间列名为Times类型是DATETIME2012-10-112:00:00现在想查询开始日期至结束日期内的周一至周五,早上八点半至中午十二点,...
现有一张表名为 Record 时间列名为 Times 类型是DATETIME 2012-10-1 12:00:00
现在想查询开始日期至结束日期内的 周一至周五,早上八点半至中午十二点,然后下午十二点半至晚上五点的记录,[ 个SQL语句应该怎么写哩,高手帮看看
比如我查询 2010-1-1 00:00:00 至 2011-1-1 00:00:00 日期内 所有周一至周五
,早上八点半至中午十二点,然后下午十二点半至晚上五点的记录,高手看看啊! 展开
现在想查询开始日期至结束日期内的 周一至周五,早上八点半至中午十二点,然后下午十二点半至晚上五点的记录,[ 个SQL语句应该怎么写哩,高手帮看看
比如我查询 2010-1-1 00:00:00 至 2011-1-1 00:00:00 日期内 所有周一至周五
,早上八点半至中午十二点,然后下午十二点半至晚上五点的记录,高手看看啊! 展开
4个回答
展开全部
SELECT * FROM Record WHERE
TO_CHAR(Times,'YYYY/MM/DD') BETWEEN '2010/01/01' and '2010/12/31'
AND TO_CHAR(Times,'D') BETWEEN 2 AND 6
AND (TO_CHAR(Times,'HH24:Mi:SS') BETWEEN '08:30:00' and '12:00:00' or TO_CHAR(Times,'HH24:Mi:SS') BETWEEN '12:30:00' and '17:00:00')
'D' 是获取星期,从星期日 开始 是1 ,其他的就不用说了吧。
TO_CHAR(Times,'YYYY/MM/DD') BETWEEN '2010/01/01' and '2010/12/31'
AND TO_CHAR(Times,'D') BETWEEN 2 AND 6
AND (TO_CHAR(Times,'HH24:Mi:SS') BETWEEN '08:30:00' and '12:00:00' or TO_CHAR(Times,'HH24:Mi:SS') BETWEEN '12:30:00' and '17:00:00')
'D' 是获取星期,从星期日 开始 是1 ,其他的就不用说了吧。
展开全部
估计你这个是sqlserver,我给你写一下:
SELECT * FROM Record
WHERE
convert(varchar(10),Times,120) BETWEEN '2010-01-01' and '2010-12-31'
AND DatePart('w',Times) BETWEEN 2 AND 6
AND (
CONVERT(varchar(8), Times, 8) BETWEEN '08:30:00' and '12:00:00'
or
CONVERT(varchar(8), Times, 8) BETWEEN '12:30:00' and '17:00:00'
)
SELECT * FROM Record
WHERE
convert(varchar(10),Times,120) BETWEEN '2010-01-01' and '2010-12-31'
AND DatePart('w',Times) BETWEEN 2 AND 6
AND (
CONVERT(varchar(8), Times, 8) BETWEEN '08:30:00' and '12:00:00'
or
CONVERT(varchar(8), Times, 8) BETWEEN '12:30:00' and '17:00:00'
)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
时间函数各个数据库不完全相同,但思路是一样的,不要纠结时间段。
其实你上面的需求就是:
YEAR(RECORD)=2010
DAYOFWEEK BETWEEN 1 AND 5
这个样子,就是时间型字段拆分判断,根据不同数据库使用时间函数就可以了。
其实你上面的需求就是:
YEAR(RECORD)=2010
DAYOFWEEK BETWEEN 1 AND 5
这个样子,就是时间型字段拆分判断,根据不同数据库使用时间函数就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询