mysql の日付比較関連の問題

WBOY
WBOYオリジナル
2016-06-13 13:20:351092ブラウズ

MySQL の日付比較の問題
テーブル kucun には datavalue (varchar、2012-01-01 の形式の日付) フィールドと Price (float 11,2) フィールドがあります

今、取得したいのは2012-07- 10 から 2012-08-10 までのデータを書き込む方法は次のとおりです:

1,
SELECT * FROM `kucun` where datavalue between 'UNIX_TIMESTAMP(2012-07-10) )' と 'UNIX_TIMESTAMP( 2012-08-10)'
結果は空です
2,
SELECT * FROM `kucun` WHERE datavalue BETWEEN '2012-07-10' AND '2012-08- 10'
結果は正しく、探していたデータが得られました。

3,
SELECT * FROM `kucun` where UNIX_TIMESTAMP(datavalue)>UNIX_TIMESTAMP(2012-07-10) and UNIX_TIMESTAMP(datavalue)結果は空です

1 と 3 が空なのはなぜですか? 2 このように書くのは正式ですか? XXXX-XX-XX 形式の日付は比較できますか?

-----解決策---------
1.
SELECT * FROM `kucun` where datavalue between 'UNIX_TIMESTAMP(2012-07-10)' と 'UNIX_TIMESTAMP(2012-08-10)'
冗長な引用符を削除します

3.
SELECT * FROM `kucun` where UNIX_TIMESTAMP(datavalue)>UNIX_TIMESTAMP('2012-07-10') and UNIX_TIMESTAMP(datavalue)
追加予定 必須引用符
------解決策------------------
UNIX_TIMESTAMP() 関数の文字列パラメータは引用符で囲む必要があります。これを試してください:

SQL コード
SELECT * FROM `kucun` where UNIX_TIMESTAMP(datavalue)>UNIX_TIMESTAMP('2012-07-10') and UNIX_TIMESTAMP(datavalue)<div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。