MySQLでクエリを書くとき、例えば
SELECT * FROM `customer` where date BETWEEN '01/20/2012' AND '01/31/2012'
また、2013 年の顧客の詳細も表示されます。
誰でも私を助けてくれますか..
MySQLでクエリを書くとき、例えば
SELECT * FROM `customer` where date BETWEEN '01/20/2012' AND '01/31/2012'
また、2013 年の顧客の詳細も表示されます。
誰でも私を助けてくれますか..
SELECT
*
FROM
customer
WHERE
STR_TO_DATE(dateField, '%m/%d/%Y') BETWEEN '01/20/2012' AND '01/31/2012';
この方法を試してください。
SELECT
*
FROM
customer
WHERE
STR_TO_DATE(dateField, '%m/%d/%Y') BETWEEN STR_TO_DATE('01/20/2012', '%m/%d/%Y') AND STR_TO_DATE('01/31/2012', '%m/%d/%Y');
次のように、データ型をまたは単純に変更date
しDATETIME
ますDATE
。
UPDATE `customer`
SET `date` = STR_TO_DATE( `date`, '%m/%d/%Y' );
更新後、次のALTER
ように使用します。
ALTER TABLE `customer`
CHANGE COLUMN `date` `date` DATE NOT NULL;
その後、次のような選択クエリを使用します。
SELECT *
FROM `customer`
WHERE `date` BETWEEN '2012-01-20' AND '2012-01-31';
データ型を適切に変更する理由の背後にある理由は、ここで説明されています: When to use VARCHAR
and DATE
/DATETIME
日付と時刻に関連するその他のデータ型についてはDATE
、 、DATETIME
、およびTIMESTAMP
型を参照してください。
date
フィールドタイプがDATE
;であると仮定します。
SELECT * FROM `customer` WHERE `date` BETWEEN '2012-01-20' AND '2012-01-31'
マニュアルから;
DATE 型は、日付部分があり時刻部分がない値に使用されます。MySQL は DATE 値を「YYYY-MM-DD」形式で取得して表示します。
参照: http://dev.mysql.com/doc/refman/5.5/en/datetime.html
アップデート
ただし、日付を として保存するのはお勧めvarchar
できません。クエリは次のようになります。
SELECT * FROM `customer` WHERE `date` REGEXP '^2012-01-(2[0-9]|[0-3][0-9])$'
参照: http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp
ただし、可能であれば、フィールド タイプを から に正確に変更する必要がありVARCHAR
ますDATE
。
SELECT * FROM `customer` where date BETWEEN '2012/01/20' AND '2012/31/01'
phpmyadmin がアップグレードされたため、すぐに実行されます