#javascript #sql #web-sql #date-comparison
#javascript #sql #web-sql #дата-сравнение
Вопрос:
Я создаю инструмент оповещения с использованием веб-sql.
Я хочу выбрать все события, которые происходят в определенный день. когда я вставляю событие, я вставляю дату как объект date с таким форматом «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
date для построения даты.
А еще лучше, используйте подготовленный запрос:
http://www.w3.org/TR/webdatabase/#dom-sqltransaction-executesql
Комментарии:
1. Это работает, когда я делаю вот так cur.getFullYear() ‘-‘ (cur.getMonth() 1) ‘-‘ cur.getDate()
2. Да, вы правы. Мне было интересно, почему они не сообщают правильно.
:)
3. Можете ли вы обновить свой ответ кодом в комментарии, чтобы упростить его для других разработчиков, которые могут столкнуться с той же проблемой 🙂
4. Я сделал, по крайней мере, я думаю, что сделал?