a    b  c d e f g
2007 5 16 9 0 2 2 
2007 5 16 10 0 0 0 
2007 5 16 11 0 7 7 
2007 5 16 12 0 0 0 
2007 5 16 13 0 0 0 
2007 5 16 14 1 2 22 
2007 5 16 15 3 6 37 
2007 5 16 16 1 2 23 
2007 5 16 18 1 2 14 
2007 5 16 19 1 0 21 
2007 5 16 20 0 0 12 
2007 5 16 21 1 3 9 
2007 5 16 23 0 1 8 
2007 5 17 0 2 2 27 
2007 5 17 1 1 0 10 
2007 5 17 2 0 0 3 
2007 5 17 3 0 0 12 
2007 5 17 4 1 0 15 我想取出c=16 d=9至c=17 d=3的之间的所有记录,请问这条SQL语句怎么写
字段的意思应该能看出来吧
就是取出2007 年 5 月 16 日 9 时 至 2007 年 5 月 17 日 3 时 之间的数据

解决方案 »

  1.   

    试试把他们拼成字符串,再convert成时间呢,没有把握,我来试下
      

  2.   

    select * from csdn3
    where convert(datetime, convert(nvarchar, a)+'/'+convert(nvarchar, b)+'/'+convert(nvarchar, c)+' '+convert(nvarchar, d)+':'+convert(nvarchar, e)+':'+convert(nvarchar, f))<getdate()
    这是小于当前时间的,你再改成你要的吧
      

  3.   

    其实可以这样 dayofmonth(aa)就是取一个date类型的aa一个月当中的几号,month(aa)取一个date类型的aa的几月份,year()也是同一个意思
      

  4.   

    建议 b,c,d,e字段改为2个字符select * from mytable where a+b+c+d>='2007051609' and a+b+c+d<='2007051703'