繁体   English   中英

在给定范围内选择日期格式为“ YYYY-MM”的记录

[英]SELECT records with date in format 'YYYY-MM' into given range

我想获取所有接近“ 到期 ”的产品。

到期日期列exDate上的日期格式为(Ym)YYYY-MM ,例如: 2018-03

我正在尝试使用此查询,但它会从表中获取所有记录。

SELECT * FROM product WHERE (exDate BETWEEN DATE_FORMAT(NOW() ,'Y-m') AND NOW()+ interval 2 month)

exDateYYYY-MM格式转换为mySql 日期格式YYYY-MM-DD然后对该值执行查询:

SELECT * FROM product WHERE STR_TO_DATE( `exDate`, "%Y-%m" ) BETWEEN CURDATE() AND DATE_ADD( CURDATE(), INTERVAL 2 MONTH)

exDate并转换成mySql 日期格式YYYY-MM-DD

STR_TO_DATE( `exDate`, "%Y-%m" )

请注意,需要使用%符号来指定格式。

然后,这是必须落入间隔的值。

注意,您可以只使用CURDATE()将当前日期转换为日期格式。

要向日期添加时间间隔,您必须使用mySql函数DATE_ADD()


需要注意的是在今天的2018-03-17 ,你会赶上产品exDate与价值观2018-042018-05

2018-03 并不是结果的一部分,因为它已变成2018-03-01 ,并且今天之前 (下限)。

2018-05 结果的一部分,因为它已变成2018-05-01并且在计算结果为2018-05-01的上限DATE_ADD( CURDATE(), INTERVAL 2 MONTH) 2018-05-17

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM