SQL 取时间断问题,求高高高手介入!! 20xiao_r888]

发布时间:2017-4-29 5:49:07 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"SQL 取时间断问题,求高高高手介入!! 20xiao_r888]",主要涉及到SQL 取时间断问题,求高高高手介入!! 20xiao_r888]方面的内容,对于SQL 取时间断问题,求高高高手介入!! 20xiao_r888]感兴趣的同学可以参考一下。

  情况说明: ddd为 datetime类型 表名:T ddd                            A      B      C 2012-05-26 14:15:45            23     78      98 ..............................................以下有N条数据 我现在要筛选出 :   每周一 至周五  下午17点以后到 第二天 08点前  的数据 怎么写? 每周一 至周五  早上08点以后到 下午  17 点前  的数据 怎么写? 求高高手!!!!!!

--每周一 至周五 下午17点以后到 第二天 08点前 的数据 select * from T where (convert(varchar(8),ddd,108) between '00:00:00' and '08:00:00' or convert(varchar(8),ddd,108) between '17:00:01' and '23:59:59') and datepart(dw,ddd) in(2,3,4,5,6,7) --每周一 至周五 早上08点以后到 下午 17 点前 的数据 select * from T where convert(varchar(8),ddd,108) between '08:00:01' and '17:00:00' and datepart(dw,ddd) in(2,3,4,5,6)

if object_id('test')is not null drop table test go create table test( ddd datetime, A int, B int, C int ) go insert test select '2012-05-26 01:15:45',23,78,98 union all select '2012-05-27 02:15:45',23,78,98 union all select '2012-05-28 03:15:45',23,78,98 union all select '2012-05-29 04:15:45',23,78,98 union all select '2012-05-30 05:15:45',23,78,98 union all select '2012-05-31 06:15:45',23,78,98 union all select '2012-06-01 07:15:45',23,78,98 union all select '2012-06-02 08:15:45',23,78,98 union all select '2012-06-03 09:15:45',23,78,98 union all select '2012-06-04 10:15:45',23,78,98 union all select '2012-06-05 11:15:45',23,78,98 union all select '2012-06-06 12:15:45',23,78,98 union all select '2012-06-07 13:15:45',23,78,98 union all select '2012-06-08 14:15:45',23,78,98 union all select '2012-06-09 12:15:45',23,78,98 union all select '2012-06-10 16:15:45',23,78,98 union all select '2012-06-11 17:15:45',23,78,98 union all select '2012-06-12 18:15:45',23,78,98 union all select '2012-06-13 19:15:45',23,78,98 union all select '2012-06-14 20:15:45',23,78,98 union all select '2012-06-15 21:15:45',23,78,98 union all select '2012-06-16 22:15:45',23,78,98 union all select '2012-06-17 23:15:45',23,78,98 union all select '2012-06-18 00:15:45',23,78,98 go --每周一至周五下午17点以后到第二天08点前 select datepart(wk,GETDATE()) select      CONVERT(varchar(19),ddd,120) as ddd,     A,B,C from     test     where      DATEPART(W,ddd) between 2 and 6     --and DATEPART(WK,ddd)=datepart(wk,GETDATE())     and (cast(CONVERT(varchar(8),ddd,24) as time)>='17:00:00'      or cast(CONVERT(varchar(8),ddd,24) as time)<='08:00:00') /* ddd    A    B    C 2012-05-28 03:15:45    23    78    98 2012-05-29 04:15:45    23    78    98 2012-05-30 05:15:45    23    78    98 2012-05-31 06:15:45    23    78    98 2012-06-01 07:15:45    23    78    98 2012-06-11 17:15:45    23    78    98 2012-06-12 18:15:45    23    78    98 2012-06-13 19:15:45    23    78    98 2012-06-14 20:15:45    23    78    98 2012-06-15 21:15:45    23    78    98 2012-06-18 00:15:45    23    78    98 */ --每周一 至周五 早上08点以后到 下午 17 点前 的数据 怎么写? select      CONVERT(varchar(19),ddd,120) as ddd,     A,B,C from     test     where      DATEPART(W,ddd) between 2 and 6     --and DATEPART(WK,ddd)=datepart(wk,GETDATE())     and CONVERT(varchar(8),ddd,24) between '08:00:00' and '17:00:00' /* ddd    A    B    C 2012-06-04 10:15:45    23    78    98 2012-06-05 11:15:45    23    78    98 2012-06-06 12:15:45    23    78    98 2012-06-07 13:15:45    23    78    98 2012-06-08 14:15:45    23    78    98 */

上一篇:SQLSERVER 2008 R2中的全文检索 20分,无满意结帖,结帖人zhangtaoxgu]
下一篇:SQL行转列 20Excalibur_]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款