2011-10-13 100 views
0

我正在使用web sql製作一個警報工具。在SQL語句中比較日期

我想選擇在特定日期發生的所有事件。當我插入事件時,我將日期作爲日期對象插入,格式爲「2011-10-14」,我應該在select語句中選擇什麼來選擇今天發生的所有事件?

我作出這樣

cur =new Date(); 
alert(cur); 
db.transaction(function(tx){ 
    tx.executeSql("select NOTE_DESC,NOTE_DATE,NOTE_TIME,ALERT_TIME,NOTES_MORE_DETAILS from NOTES where NOTE_DATE = "+cur+" order by NOTE_TIME asc limit 0,1",[], alert("yes"),onError); 
}); 

在這我的查詢是:

select NOTE_DESC, NOTE_DATE, NOTE_TIME, ALERT_TIME, NOTES_MORE_DETAILS 
from NOTES 
where NOTE_DATE = "+cur+" 
order by NOTE_TIME asc 
limit 0,1 

但錯誤消息出現,這是 「近月:語法錯誤」

我應該如何在sql中進行日期比較

回答

1

我相信你想:

NOTE_DATE = '"+cur.getFullYear()+'-'+(cur.getMonth()+1)+'-'+cur.getDate()+"' 

注意'包裹的查詢變量的值,並調用cur日期對象的方法來構造日期。

http://jsfiddle.net/yXgDw/

更重要的是,使用準備好的查詢:

http://www.w3.org/TR/webdatabase/#dom-sqltransaction-executesql

http://www.w3.org/TR/webdatabase/#introduction

+0

它不工作:( – palAlaa

+0

見我的編輯對不起':。)' –

+0

它當我做出這樣的作品cur.getFullYear()+' - '+(cur.getMonth()+ 1)+' - '+ cur.getDate() – palAlaa