SQLite3 не может сделать дополнение в предложении WHERE? - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть следующий простой запрос, который я выполняю в базе данных SQLite3:

SELECT AField,AnotherField FROM ATable WHERE AnIntField>strftime('%s');

Это прекрасно работает и возвращает ожидаемый результат.

Если я выполняю слегка измененный запрос:

SELECT AField,AnotherField FROM ATable WHERE AnIntField+86400>strftime('%s');

Тогда я не получаю никаких результатов!Это не имеет никакого смысла!Я попытался поставить скобки вокруг AnIntField+86400, но это не помогает.И да, значения AnIntField достаточно больше, чем strftime('%s'), чтобы он не возвращал другие результаты.

Есть ли причина для такого поведения?

1 Ответ

2 голосов
/ 21 февраля 2012

Это полное предположение, но что произойдет, если вы оберните AnIntField + 86400 в эквивалент SQLite3 приведения?

В TSQL вы сделаете что-то вроде этого:

WHERE CAST(AnIntField + 86400 AS int) > strftime('%s')

Я думаю, что AnIntField + val выходит как дополнение, а не как дополнение.

На самом деле, если приведение не работает, попробуйте изменить select на

SELECT AnIntField+86400 FROM ...

и посмотрите, что этовыплевывает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...