clojureql выбрать между двумя датами - PullRequest
5 голосов
/ 31 августа 2011

Как бы я использовал clojureql для выбора между двумя датами?Надеюсь, что-то вроде этого:

@(-> (table :abc)
     (select (where (between d1 d2))))

Ответы [ 2 ]

6 голосов
/ 01 сентября 2011

Вы можете написать свой собственный between

(defmacro between
  [x min max]
  `(and (< ~min ~x) (< ~x ~max)))

Это будет совместимо с ClojureQL.

4 голосов
/ 01 сентября 2011

Нет BETWEEN, и хотя у вас может возникнуть соблазн использовать Lisp-y с несколькими аргументами <, он также не работает:

;; invalid SQL output
hello-cql.core> (select (table :abc) (where (< 10 :a 20)))
SELECT abc.* FROM abc WHERE (10 < a < 20)

;; valid SQL output
hello-cql.core> (select (table :abc) (where (and (< 10 :a) (< :a 20))))
SELECT abc.* FROM abc WHERE ((10 < a) AND (a < 20))
...