2017-03-12 4 views
0

expiry_date (VARCHAR)を含むproductsテーブルがあります。 PHPを使用して3か月後に期限切れになる製品をテーブルに表示する方法テーブルからレコードを選択する日付は今後3ヶ月となります

EDIT:EXPIRY_DATEフォーマットは2017年1月1日である(Y-M-D)

+2

'EXPIRY_DATE(VARCHAR)'それは悪いアイデアだとVARCHARに日付を変換します。 mysqlの組み込みの日付/時刻関数を使用する必要があります –

+0

@ Fred-ii-アドバイスのおかげでSQLの初心者です! – Odie

+0

ようこそ。 varcharを使用すると、クエリーするのがずっと難しくなり、他の機能に頼らざるを得なくなるので、さまざまな点で優れています。外部データが別のフォーマットのどこかから来ている場合、mysqlが好きなように 'd-m-Y'から' YYYY-mm-dd'に変換する前に変換する方が簡単です。 –

答えて

3

より良いオプションではなく、日付詰め込むためVARCHARを製造するMySQLでは、日付と時刻の関数を使用することです。

DATE_ADDBETWEENを使用できます。

使用STR_TO_DATE

SELECT * 
FROM tbl 
WHERE STR_TO_DATE(varchar_expiry_date, '%Y-%m-%d') BETWEEN now() 
        AND DATE_ADD(now(), INTERVAL 3 MONTH) 
関連する問題