一.实际应用场景

新增数据表Medicinal,列(Id,MedicinalName,InvalidTime),Id:药品编号,MedicinalName:药品名,InvalidTime:失效日期

根据失效日期与当前日期相减,得出有效时间天数和药品状态(已经失效,即将失效(距离失效还有一个月),正常(距离失效日期超过一个月))

SELECT
    a.*, DATEDIFF(DAY, GETDATE(), InvalidTime) AS '间隔天数',
    CASE
WHEN DATEDIFF(DAY, GETDATE(), InvalidTime) <= 0 THEN
    '失效'
WHEN DATEDIFF(DAY, GETDATE(), InvalidTime) > 0
AND DATEDIFF(DAY, GETDATE(), InvalidTime) <= 30 THEN
    '即将失效'
ELSE
    '正常'
END '药品状态'
FROM
    Medicinal a

结果:

二.代码分析(DATEDIFF)

DATEDIFF() 函数返回两个日期之间的时间。startdate 和 enddate 参数是合法的日期表达式。day表示返回的类型,该参数还可以是year,month

 

DATEDIFF(day, startdate, enddate)

 

三.拓展(关于日期)

连接:http://www.w3school.com.cn/sql/sql_dates.asp

 

posted on 2017-12-08 10:27  name_小柒  阅读(773)  评论(0编辑  收藏  举报