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)' and '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)' and '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 code
SELECT * FROM `kucun` where UNIX_TIMESTAMP(datavalue)>UNIX_TIMESTAMP('2012-07-10') and UNIX_TIMESTAMP(datavalue)