导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

效期到期的时间计算问题!!

hms0103 2008-01-14 02:41:55
我的数库的表如下:
ID号 品名 批号 效期
001 阿莫西林 070707 2009-08
002 土霉素片 060505 2008-05
003 养阴清肺膏 060606 2008-06
004 益母草膏 070101 2009-01
我想查出 还有6个月就到期的记录,如何实现??

...全文
103 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hms0103 2008-01-14
我的日期类型是: datetime 。 数据库里的时间为: 2010-05-31 00:00:01 这样的。。
回复
guyehanxinlei 2008-01-14
SELECT * FROM T WHERE DATEDIFF(MM,GETDATE(),效期)<=6
回复
liangyuan198412 2008-01-14
select * from tab where datediff(month,getdate(),效期)<=6
回复
liangCK 2008-01-14
create table tb(id char(3),品名 nvarchar(20),批号 char(6),效期 char(7))
insert into tb select '001', '阿莫西林' , '070707', '2009-08'
insert into tb select '002' , '土霉素片' , '060505' , '2008-05'
insert into tb select '003' , '养阴清肺膏', '060606' , '2008-06'
insert into tb select '004' , '益母草膏' , '070101' , '2009-01'

select *
from tb
where datediff(month,getdate(),convert(char(10),效期+'-1',120)) between 0 and 6

drop table tb

/*
id 品名 批号 效期
---- -------------------- ------ -------
002 土霉素片 060505 2008-05
003 养阴清肺膏 060606 2008-06

(所影响的行数为 2 行)
*/
回复
echiynn 2008-01-14
..

原來是不帶日期的字段,2樓寫錯了
回复
areswang 2008-01-14
select * from table
where datediff(mm,效期,GETDATE())=6
回复
loworth 2008-01-14


SELECT * FROM
[TYourTable]
WHERE DATEDIFF(MONTH,[效期],GETDATE())<=6)--只查6个月的则为 =


回复
kk19840210 2008-01-14
select * from tab where datediff(month,getdate(),效期)<=6
回复
echiynn 2008-01-14

select * from 表
where 有效期 > getdate() and datediff(mm, getdate(), 有效期) = 6
回复
liangCK 2008-01-14
效期列是什么类型的?.
如果是字符型的..要转一下为datetime
然后再用datediff与现在的时候相减一下就可以了.
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告