誰かが私の間違いを教えてもらえますか? そのクエリを使用すると、データに datetime = '2012-10-12' が含まれる行が返されるはずですよね? ここに私の参照があります
私の日時列 = 'YYYY-MM-DD HH:MM:SS'、データ型 = 日時。
XAMPP v1.8.0、MySQL v5.5.25a を使用しています。
をCAST
使ってみるdatetime
date
DATE()
SELECT *
FROM tableName
WHERE DATE(`datetime`) = DATE(CURDATE())
YYYY-MM-DD HH:MM:SS
等しくないYYYY-MM-DD
2012-01-01 12:12:12 is not equal to 2012-01-01 00:00:00
列で関数を使用しないでください。たとえば、DATE(datetime)
mysql はインデックスを使用できません。
範囲を使用する方がほぼ確実に優れています。
WHERE `datetime` between '2012-01-01 00:00:00' and '2012-01-01 23:59:59'
または、DATE 部分だけを別の列に格納します (カーディナリティが低くなり、オプティマイザーによって適切に処理されます)。
DATE()
mysql から使用して、TIMESTAMP を DATE にフォーマットします
Select * FROM tablename WHERE DATE(colname) = CURDATE()