sql 如何在sql语句里使用函数
我有一个库,日期的字段为a,保质期的字段为b现在我想把过期的记录给找出来.应该怎样写sql语句应该是a减去现在的时间再减去b.如果小于0则视为过期.但是在sql里不会写s...
我有一个库,日期的字段为a,保质期的字段为b
现在我想把过期的记录给找出来.应该怎样写sql语句
应该是a减去现在的时间再减去b.如果小于0则视为过期.但是在sql里不会写sql语句.忘解答.万分感谢. 展开
现在我想把过期的记录给找出来.应该怎样写sql语句
应该是a减去现在的时间再减去b.如果小于0则视为过期.但是在sql里不会写sql语句.忘解答.万分感谢. 展开
8个回答
展开全部
用datediff函数,算天数
datediff(day,a,b)
算保质期b与日期a之间的天数
如果>0,则在保质期内,=0则在保质期当天,如果<0则过了保质期.
如果查在保质期内的,在条件语句中写
where datediff(day,a,b)>=0
不知你的日期a是什么日期,如果查是否到保质期,应该是保质期与实时时间来比较判断.就是今天查的话就用当天的日期.条件语句应该这样写.
where datediff(day,getdate(),b)>=0
意思就是保质期b距今天还不多少天,保质期内的当然是>=0
如果<0则就是过了保质期.
datediff(day,a,b)
算保质期b与日期a之间的天数
如果>0,则在保质期内,=0则在保质期当天,如果<0则过了保质期.
如果查在保质期内的,在条件语句中写
where datediff(day,a,b)>=0
不知你的日期a是什么日期,如果查是否到保质期,应该是保质期与实时时间来比较判断.就是今天查的话就用当天的日期.条件语句应该这样写.
where datediff(day,getdate(),b)>=0
意思就是保质期b距今天还不多少天,保质期内的当然是>=0
如果<0则就是过了保质期.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把B字段也设置成日期型,这样 ,如果B>今天就是没过期,否则就是过期,如果想看保质期多少天就用DATEDIFF(day,出厂日期,过期日期) as 一个新列就OK了,DATEDIFF返回两个时间的差,可以反回月,日,年,day就是反回相差多少天,我说的够简单吧,清晰吧,分不给我都可惜了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表
where datediff(day,getdate(), 日期A )>B
--前提:B是天数
select * from 表
where datediff(month,getdate(), 日期A )>B
--前提:B是月数 同样 如果B是年数则改为year
where datediff(day,getdate(), 日期A )>B
--前提:B是天数
select * from 表
where datediff(month,getdate(), 日期A )>B
--前提:B是月数 同样 如果B是年数则改为year
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要看你的是取什么日期了,如果是天数的话,那么很简单
换个思维,如果a-现在时间大于b-现在时间,那么就是过期了
select * from 表
where (datediff(day,a,getdate()) - datediff(day,b,getdate())) > 0
;
换个思维,如果a-现在时间大于b-现在时间,那么就是过期了
select * from 表
where (datediff(day,a,getdate()) - datediff(day,b,getdate())) > 0
;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询