如何将DATEDIFF函数处理下来的数字转为INT型以便进行处理
select RepertoryInfo.StockID,--进货ID
RepertoryInfo.LF_Date,--出厂时间
DruggeryInfo.DruggerName_1,--货品名称
DruggeryInfo.PeriodOfValidity,--货品有效期(月)
datediff
(
dd,
dateadd(m,DruggeryInfo.PeriodOfValidity,RepertoryInfo.LF_Date),
CURRENT_TIMESTAMP
) as '有效期'
from RepertoryInfo inner join DruggeryInfo
on RepertoryInfo.DruggeryID= DruggeryInfo.DruggeryID
where '有效期'>0 and '有效期' <=30
--------------------------------------------------
要求是查询货品过期前一个月内
也就是最多再过一个月就要过期了(就算30天为一月)
怎么写呀
我这样写应该没问题呀
前辈帮我改改吧
问题点数:0、回复次数:4Top
1 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 12:25:54 得分 0
改为这样试试
Select * from
(select RepertoryInfo.StockID,--进货ID
RepertoryInfo.LF_Date,--出厂时间
DruggeryInfo.DruggerName_1,--货品名称
DruggeryInfo.PeriodOfValidity,--货品有效期(月)
datediff
(dd,
dateadd(m,DruggeryInfo.PeriodOfValidity,RepertoryInfo.LF_Date),
CURRENT_TIMESTAMP
) as '有效期'
from RepertoryInfo inner join DruggeryInfo
on RepertoryInfo.DruggeryID= DruggeryInfo.DruggeryID) A
where 有效期>0 and 有效期 <=30Top
2 楼jyg8888(鸟哥)回复于 2005-04-02 12:53:28 得分 0
好象不行
Top
3 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-02 13:13:02 得分 0
提示错误是什么??
这是在我的数据库中测试通过的语句,你参考一下吧。
Select * from (Select *,DateDiff(dd,InsertDate,GetDate()) As '有效期' from BB) A Where 有效期>0 and 有效期 <=30
或者你将你的表,以及想得到怎样的结果贴出来看看。
Top
4 楼xluzhong(Ralph)回复于 2005-04-02 13:20:21 得分 0
--还没有生成列
select RepertoryInfo.StockID,--进货ID
RepertoryInfo.LF_Date,--出厂时间
DruggeryInfo.DruggerName_1,--货品名称
DruggeryInfo.PeriodOfValidity,--货品有效期(月)
datediff
(
dd,
dateadd(m,DruggeryInfo.PeriodOfValidity,RepertoryInfo.LF_Date),
CURRENT_TIMESTAMP
) as '有效期'
from RepertoryInfo inner join DruggeryInfo
on RepertoryInfo.DruggeryID= DruggeryInfo.DruggeryID
where datediff
(
dd,
dateadd(m,DruggeryInfo.PeriodOfValidity,RepertoryInfo.LF_Date),
CURRENT_TIMESTAMP
) between 0 and 30
Top




