日付をupdatedOnとして保存しました(「2012-11-1212:38:43」などの値)
私の質問は次のとおりです。
select * from mytable
where updatedOn >= '11/12/2012' AND updatedOn <= '11/12/2012'
from
私の目標は、与えられた日付とto
日付を含むすべてのレコードを取得することです
回避<=
して代わりに使用<
すると、データに時間コンポーネントがあるかどうかに関係なく機能するロジックを使用せざるを得なくなります。
SELECT
*
FROM
myTable
WHERE
updatedOn >= '2012-12-11'
AND updatedOn < '2012-12-11' + INTERVAL '1' DAY
DATE()
列のコンポーネントを取得し、MySQLでサポートされている形式updatedOn
の1つで日付リテラルをフォーマットする必要があります。
SELECT *
FROM mytable
WHERE DATE(updatedOn) BETWEEN '2012-12-11'
AND '2012-12-11'
または、MySQLのSTR_TO_DATE()
関数を使用して、文字列をMySQLの日付に変換します。
SELECT *
FROM mytable
WHERE DATE(updatedOn) BETWEEN STR_TO_DATE('11/12/2012', '%d/%m/%Y')
AND STR_TO_DATE('11/12/2012', '%d/%m/%Y')
あなたは試す必要があります
select * from mytable
where updatedOn >= '11/12/2012' AND updatedOn <= '11/12/2012 23:59:59.999'
あなたが書くとき'11/12/2012'
それはを意味する'11/12/2012 00:00:00'
ので、あなたはまた文字列に時間を追加する必要があります
編集:@Demsが指摘したように、私もミリ秒を考慮する必要がありました
DATE関数を使用する必要があります-
SELECT
*
FROM
mytable
WHERE
DATE(updatedOn) = '2012-12-11'