![](/img/trans.png)
[英]MySQL - Date Format from 'yyyy-mm-mm' to 'yyyy-mm' in a function
[英]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)
将exDate
从YYYY-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-04
和2018-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.