SQLite: текущая дата плюс один день в предложении where - PullRequest
0 голосов
/ 22 сентября 2011

Мне нужно получить 3 запроса в таблице «назначение».

  1. , где назначение.start_date сегодня,
  2. , где встречи.start_date = сегодня + 1 день, и
  3. , где назначение.старт_дата> сегодня + 1 день.

У меня 1. отлично.

var resultSet = conn.execute('SELECT * FROM appointments WHERE date() = date(start_date)');

Для 2. Я пробовал это:

var resultSet = conn.execute('SELECT * FROM appointments WHERE date("now", "+1day") = date(start_date, "+1day")');

Я получил дату («сейчас», «+ 1 день») по этой ссылке по этой ссылке , но она возвращает те же результаты, что и первый запрос.

Может кто-нибудь помочь с этими запросами?

Ответы [ 4 ]

1 голос
/ 22 сентября 2011

Я не уверен в SQLite, но попробуйте следующий код:

var now = new Date();
var nowStr = now.getFullYear()+"-"+(now.getMonth()+1)+"-"+now.getDate();
var nowPlus1 = new Date(Number(now)+24*60*60*1000);
var nowPlus1Str = nowPlus1.getFullYear()+"-"+(nowPlus1.getMonth()+1)+"-"+nowPlus1.getDate();

var resultSet = conn.execute("SELECT * FROM appointments WHERE start_date = '" + nowStr + "'");

var resultSet = conn.execute("SELECT * FROM appointments WHERE start_date = '" + nowPlus1Str + "'");

var resultSet = conn.execute("SELECT * FROM appointments WHERE start_date > '" + nowPlus1Str + "'");
1 голос
/ 22 сентября 2011

Извините, совершенно идиотизм. Мой запрос был неверным: WHERE date ("now", "+ 1day") = date (start_date, "+ 1day") должны были прочитать WHERE date ("now", "+ 1day") = дата (дата начала) У меня был дополнительный +1 день. Doh!

1 голос
/ 22 сентября 2011

Если вы используете именно то, что опубликовано, я бы сказал, что у вас есть проблема с пробелами

SQLite использует "+1 день", и вы опубликовали "+ 1 день"

Запрет любыхявные сообщения об ошибках, с пробелом должно работать

0 голосов
/ 26 февраля 2014

Попробуйте использовать «плюс один день» вместо «+1 день». Это не документировано, но работает для меня в другом коде.

var resultSet = conn.execute('SELECT * FROM appointments WHERE date("now plus one day") = date(start_date plus one day")');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...