OrientDB: проверка по переменной LET в предложении WHERE - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь написать пакетный скрипт OrientDB для

  1. извлечение DateTime из определенной записи (T1)
  2. увеличить DateTime на определенную величину (T2)
  3. поиск записей, имеющих DateTime между T1 и T2

    НАЧАТЬ
    LET T1 = ВЫБРАТЬ время как значение ОТ MyClass WHERE id = someID
    LET T2 = SELECT sum (first ($ T1.value) .asLong (), someTime) .asDateTime () в качестве значения
    ВЫБРАТЬ * ИЗ MyClass ГДЕ время> $ T1 И время <$ T2 <br> COMMIT

Это прекрасно работает, если я не использую $ T1 и $ T2 (или $ T1.value, $ T2.value) в предложении WHERE, но строки вроде "2018-01-01 00:00:00 ». Чтобы лучше понять разницу между «2018-01-01 00:00:00» и $ T1 / $ T2 (или $ T1.value / $ T2.value), я добавил RETURN $ T1 / $ T2 (или $ T1. value / $ T2.value) в конце и получил ту же самую строку через студию.

Так почему я могу использовать рукописную строку в предложении WHERE, но не значение какой-либо пользовательской переменной?

Как мне переписать сценарий, чтобы он работал как положено?

...