テーブルにDATETIME列があり、レコードがいつ作成されたかを格納します。特定の日に作成されたレコードのみを選択したい。私が試してみると:
SELECT *
FROM myTable
WHERE postedOn = '2012-06-06'
、、などのようにpostedOn
設定され
た行がテーブルに多数ある場合でも、行は返されません。2012-06-06 21:42:02
2012-06-06 07:55:17
何か案は?
DATEスカラーを使用します。
SELECT *
FROM myTable
WHERE date(postedOn) = '2012-06-06'
SELECT *
FROM myTable
WHERE DATE(postedOn) = '2012-06-06'
DATE()は、日時フィールドの日付部分を返します。
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date
日付に日を追加して、時間範囲を作成します。
SELECT *
FROM myTable
WHERE postedOn >= '2012-06-06' and postedOn < '2012-06-07'
クエリはフィールドのインデックスを使用できるため、これが最も効率的な方法です。