SELECT 将日期格式 'YYYY-MM' 记录到给定范围内
SELECT records with date in format 'YYYY-MM' into given range
我想获取接近“过期”的所有产品。
到期日期列 exDate
的日期格式为 (Y-m)
或 YYYY-MM
,例如:2018-03
.
我正在尝试使用此查询,但它从 table.
中获取所有记录
SELECT * FROM product WHERE (exDate BETWEEN DATE_FORMAT(NOW() ,'Y-m') AND NOW()+ interval 2 month)
将 exDate
从 YYYY-MM
格式转换为 mySql date 格式 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()
将当前日期转换为 date 格式。
要为 日期 添加时间间隔,您必须使用 mySql 函数 DATE_ADD()
请注意,从今天 2018-03-17
开始,您将捕获具有 exDate
且值为 2018-04
和 2018-05
的产品。
2018-03
不是 结果的一部分,因为它变成了 2018-03-01
并且在今天 之前(下限)。
2018-05
是结果的一部分,因为它变成了2018-05-01
并且在计算结果为[=的上限DATE_ADD( CURDATE(), INTERVAL 2 MONTH)
之前29=]
我想获取接近“过期”的所有产品。
到期日期列 exDate
的日期格式为 (Y-m)
或 YYYY-MM
,例如:2018-03
.
我正在尝试使用此查询,但它从 table.
中获取所有记录SELECT * FROM product WHERE (exDate BETWEEN DATE_FORMAT(NOW() ,'Y-m') AND NOW()+ interval 2 month)
将 exDate
从 YYYY-MM
格式转换为 mySql date 格式 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()
将当前日期转换为 date 格式。
要为 日期 添加时间间隔,您必须使用 mySql 函数 DATE_ADD()
请注意,从今天 2018-03-17
开始,您将捕获具有 exDate
且值为 2018-04
和 2018-05
的产品。
2018-03
不是 结果的一部分,因为它变成了 2018-03-01
并且在今天 之前(下限)。
2018-05
是结果的一部分,因为它变成了2018-05-01
并且在计算结果为[=的上限DATE_ADD( CURDATE(), INTERVAL 2 MONTH)
之前29=]