4

テーブルにDATETIME列があり、レコードがいつ作成されたかを格納します。特定の日に作成されたレコードのみを選択したい。私が試してみると:

SELECT * 
FROM myTable
WHERE postedOn =  '2012-06-06'

、、などのようにpostedOn設定され た行がテーブルに多数ある場合でも、行は返されません。2012-06-06 21:42:022012-06-06 07:55:17

何か案は?

4

3 に答える 3

11

DATEスカラーを使用します。

SELECT * 
FROM myTable
WHERE date(postedOn) =  '2012-06-06'
于 2012-06-06T22:36:12.800 に答える
2
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

于 2012-06-06T22:36:11.267 に答える
1

日付に日を追加して、時間範囲を作成します。

SELECT * 
FROM myTable
WHERE postedOn >= '2012-06-06' and postedOn < '2012-06-07'

クエリはフィールドのインデックスを使用できるため、これが最も効率的な方法です。

于 2012-06-06T22:44:37.183 に答える