OrientDB - 使用时区查询

时间:2016-11-28 16:10:43

标签: sql orientdb

我需要查询orientDB以检索按天聚合的数据。 E.g:

SELECT OCCURRENCE, COUNT(1) AS NBR_VALUES FROM
(
    SELECT END_PROCESSING.asDate().format('yyyy-MM-dd').asDate().asLong() AS OCCURRENCE
    FROM MY_TABLE 
    WHERE END_PROCESSING >= ? AND END_PROCESSING <= ?
) 
GROUP BY OCCURRENCE

但是我需要根据我的客户端时区(网络浏览器)执行此聚合。

理想情况下,它会与此类似:

SELECT END_PROCESSING.asDate('Europe/London')

有没有办法实现这一点,还是需要在上层(Java)上进行聚合?

1 个答案:

答案 0 :(得分:0)

根据我对oracle db的经验建议。 如何使这个存储过程?您可以使用数据返回对象。接受限制作为参数。从上层获取参数(javascript / java)。

我的意思是(请翻译成你的db语法):

    FUNCTION get_data(I_time1 TIMESTAMP, I_time2 TIMESTAMP) 
    RETURNS --your object type here---
    IS
    BEGIN
      SELECT OCCURRENCE, COUNT(1) AS NBR_VALUES INTO --your objects here--
     FROM
    (
        SELECT END_PROCESSING.asDate().format('yyyy-MM-dd').asDate().asLong() AS OCCURRENCE
        FROM MY_TABLE 
        WHERE END_PROCESSING >= I_time1 AND END_PROCESSING <= I_time2
    ) 
    GROUP BY OCCURRENCE;
    RETURN --your object--
    ;
    END;
    /