2011-10-13 98 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