Virtuoso does not support date literals or the DATE reserved keyword. Literal dates should be enclosed in a conversion function such as stringdate() , as in this example:

select * from demo.demo.orders o
  where o.orderdate between stringdate('1994-01-01') And stringdate('1997-12-31')

Alternatively type casts can be used to explicitly instruct Virtuoso to assume a string as a date, see below.