Нет, это невозможно в Go. Константы Go являются конструкциями времени компиляции, в то время как значения параметров существуют только во время выполнения.
Выражения констант могут содержать только операнды константы и оцениваются во время компиляции.
blockquote>Рекомендуемое чтение: The Go Blog: Константы
Я не знаю, существуют ли некоторые ограничения в SQLite, но можно попробовать следующие утверждения, которые работают в SQL-сервере.
Если разница во времени является постоянной (Вы заявляете, что это - 5 минут), можно записать:
SELECT A.id, A.record_id, A.price, A.time, ISNULL(A.price - B.price, 0) AS difference
FROM Table1 as A
LEFT OUTER JOIN Table1 B ON A.record_id = B.record_id AND A.time - B.time = 5
иначе
SELECT A.id, A.record_id, A.price, A.time, ISNULL(A.price - B.price, 0) AS difference
FROM Table1 as A
LEFT OUTER JOIN Table1 B ON B.record_id = A.record_id
AND B.time = (SELECT MAX(time) FROM Table1 C WHERE C.time < A.time AND C.record_id = A.record_id)
Оператор без соединений следующий
SELECT id, record_id, price, time,
(SELECT A.price - B.price
FROM Table1 as B
WHERE B.record_id = A.record_id AND
B.time = (SELECT MAX(time) FROM Table1 C WHERE C.time < A.time AND C.record_id = A.record_id)) AS difference
FROM Table1 as A
Я надеюсь, что один из них поможет Вам.