2017-03-12 89 views
0

我有一个products表,其中包含expiry_date (VARCHAR)。如何选择3个月后即将到期的产品,并使用PHP显示在桌面上?从表中选择记录,日期从现在起3个月

编辑:EXPIRY_DATE格式是2017年1月1日(Y-M-d)

+2

'EXPIRY_DATE(VARCHAR)'这是一个坏主意。您应该使用mysql的内置日期/时间函数 –

+0

@ Fred-ii-我是SQL新手,感谢您的建议! – Odie

+0

不客气。它在很多方面都更好,因为使用varchar使查询变得更加困难,而且您必须诉诸其他函数。如果外部数据来自其他地方的其他格式,则在数据库进入数据库之前将其转换比较容易,从mysql-d喜欢的'd-m-Y'到'YYYY-mm-dd'。 –

回答

3

更好的选择是使用日期和时间函数在MySQL,而不是使VARCHAR日期东西。可以使用DATE_ADDBETWEEN

使用STR_TO_DATE转换日期为varchar

SELECT * 
FROM tbl 
WHERE STR_TO_DATE(varchar_expiry_date, '%Y-%m-%d') BETWEEN now() 
        AND DATE_ADD(now(), INTERVAL 3 MONTH) 
相关问题