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

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个月就到期的记录,如何实现??

...全文
149 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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与现在的时候相减一下就可以了.

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧