2010-06-13 3 views
4

Интересно, поддерживает ли sqlite3 функцию интервала. Следующее утверждение принимается PostgreSQL, однако sqlite3 не смог его проанализировать;sqlite3 функции даты и времени

select 
... 
from 
orders 
where 
... 
and o_orderdate < date '1995-03-01' + interval '3' month 

Ошибка: вблизи линии 4: возле " '1995-03-01'": ошибка синтаксиса

Затем я изменил заявление немного, такие как;

and o_orderdate < date('1995-03-01') + interval '3' month 

На этот раз возникла ошибка; Ошибка: вблизи линии 4: возле " '3'": ошибка синтаксиса

К сожалению, такой же трюк не работает для функции интервала т.е.

and o_orderdate < date('1995-03-01') + interval('3' month) 

или

and o_orderdate < date('1995-03-01') + interval('3') month 

или даже

and o_orderdate < date('1995-03-01') + interval(3 month) 

все еще дал мне синтаксическую ошибку.

Может быть, sqlite3 не поддерживает функцию интервалов или мне что-то не хватает в его использовании?

Большое спасибо

ответ

0

попробовать это:

and date(o_orderdate) < date('1995-03-01','+3 month') 

Для расчета даты, вы должны сообщить в SQLite, что ваше поле базы данных является дата: date(o_orderdate)

Синтаксис SQLite довольно неустановлен поэтому важно убедиться, что знак «+» не имеет пробелов до следующего номера: '+3 month'

Смежные вопросы