【问题标题】:compare date in sql statement比较sql语句中的日期
【发布时间】:2011-10-13 00:42:18
【问题描述】:

我正在使用 web 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中进行日期比较??

【问题讨论】:

    标签: javascript sql web-sql date-comparison


    【解决方案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

    【讨论】:

    • 当我这样做时它会起作用 cur.getFullYear()+'-'+(cur.getMonth()+1)+'-'+cur.getDate()
    • 是的,你是对的。我想知道为什么他们没有正确报告。 :)
    • 您能否在评论中使用代码更新您的答案,以便其他可能面临相同问题的开发人员更容易:)
    • 我做到了,至少我认为我做到了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多