declare @tab table(序号 int,名称 varchar(20),检定日期 smalldatetime,检定周期 int,货币类别 varchar(20),价格 money)
insert @tab values(1,'aa','2005-10-07',3,'R',23.5)
insert @tab values(2,'aa','2005-10-05',6,'R',20)
insert @tab values(3,'bb','2005-10-04',12,'U',84.32)
insert @tab values(4,'bb','2005-10-03',5,'U',29.5)
insert @tab values(5,'bb','2005-10-04',12,'H',84.32)
insert @tab values(6,'bb','2005-10-03',5,'H',29.5)
insert @tab values(3,'bb','2005-09-04',12,'U',84.32)
insert @tab values(4,'bb','2005-08-03',5,'U',29.5)
insert @tab values(5,'bb','2005-07-04',12,'H',84.32)
insert @tab values(6,'bb','2005-06-03',5,'H',29.5)--select * from @tab
select 序号,名称,
[检定日期]=convert(varchar(20),检定日期,120),检定周期,
[货币类别]=货币类别+convert(varchar(20),价格),
[价格]=convert(decimal(19,2),价格) from @tab
where DATEPART ( month ,检定日期)=datepart(month,getdate())
--楼主,这一句不是很清楚
查询检定日期(是上一次的检定日期)+检定周期(如3就是加上三个月,12就是加上一年)=当前系统时间月份的数据(如今天是10月7日,
我想得到检定日期加检定周期符合10月7日到10月31日的)
select getdate()
select datepart(month,getdate())
select datepart(month,getdate())+3

解决方案 »

  1.   

    select 序號,名稱,dateadd(month,檢定周期,檢定日期) as 當前系統時間,
    case when 貨幣類別='人民幣' then 'R'+cast(價格 as varchar) 
    when 貨幣類別='美元' then 'U'+cast(價格 as varchar) 
    when 貨幣類別='港幣' then 'H'+cast(價格 as varchar)
    end 貨幣類別,convert(char(10),檢定日期,120)+' 00:00:00' 檢定日期,
    cast(價格 as decimal(18,2)) 價格
    from 檢定表
      

  2.   

    select dateadd(mm,检定周期,查询检定日期)