1.注释
单行注释 – 后面必须有空格才可以
-- select now();
2.日期和时间:
在当前时间基础上,添加一年
set @dt = now();
select now(), date_add(@dt,interval 1 year);
结果:
now(), date_add(@dt,interval 1 year)
‘2019-02-08 22:32:26’, ‘2020-02-08 22:32:26’
具体结果见链接
MySQL中日期 时间的处理方式
NOW()的返回值是一个DATETIME字符串格式
3.curdate:返回当前日期,不包括时间
select curdate()
结果:‘2019-02-08’
4.datediff函数
日期相减函数:datediff(date1,date2): 1 - 2:返回的是相差的天数,有正负
,同理timediff(time1,time2)
MySQL操作手册—datediff:
DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。
mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31
5.是否超出保质期?
答:根据生产日期和保质期,查看药品是否超出保质期,
curdate()返回当前日期,produceDate字段是生产日期具体到秒了,quelityAssurance 字段是保质期,以月为单位
比如:
A3 感冒通 感冒类 2018-02-15 00:00:00 石家庄 中药 石药集团 36 25 200
其中produceDate为2018-02-15 00:00:00 quelityAssurance 为36个月
未过保质期
具体语句:
strSql.Format(_T("datediff(curdate(),medicine.produceDate) >= (quelityAssurance * 30)"));
//strSql.Format(_T("datediff(当前日期,生产日期) >= (保质期)"));