一个表中有两个字段,分别是
FYear(年)  FPeriod(月) 
2005           1
2005           2
2005           3
…………………………
2006           1
2006           2
2006           3问题是,我想查询 2005年10 到2006年2月  的记录
不知道该怎么办了,下面是我的语句,
SELECT * FROM 表
WHERE (CONVERT(datetime, FYear + FPeriod) BETWEEN CONVERT(datetime, '2005-1-1') AND CONVERT(datetime, '2006-1-1'))查不出记录,有谁知道是什么原因吗。
语句怎么写才能查出这些记录?
在线等待。

解决方案 »

  1.   


    select * from 表
    where CONVERT(DATETIME,CAST(FYEAR AS VARCHAR(4))+RIGHT('0'+CAST(FPERIOD AS VARCHAR(2)),2)+'01')
    BETWEEN CONVERT(datetime, '20051001') AND CONVERT(datetime, '20060131')
      

  2.   

    SELECT * FROM 表 WHERE (FYear+'-'+right('0'+FPeriod,2)) BETWEEN '2005-10' AND '2006-02'
      

  3.   

    感谢 zhaoanle(zhao) 
    你的语句是正确的。谢谢
      

  4.   

    SELECT * FROM 表
    WHERE (FYear=2005 and FPeriod>=10) or (FYear=2006 and FPeriod<=2)