[firebase-br] Query com time zone

Gladiston Santana gladiston em vidy.com.br
Ter Fev 27 09:25:13 -03 2018


Há uma issue para FB4:
http://tracker.firebirdsql.org/browse/CORE-694
e já está no roadmap:
https://www.firebirdsql.org/en/planning-board/

Até lá, a o time zone será sempre o que for recebido  pelo lado cliente e
não há funções especificas para lidar com isso, por exemplo, obter o
timezone de quem está conectado.

Isso não quer dizer que não tenha como resolver o problema, afinal, banco
de dados existiam antes das pessoas pensarem em situações como esta.
Por exemplo, se estiver lidando com clientes de diferentes localidades e
timezones, uma solução que penso no momento seria mudar o timezone do
servidor para utc e criar um campo de sessão (namespace em alguns DBs) para
armazenar o dst do horario local, do tipo integer.
Daí então ao logar-se,você poderia usando RDB$SET_CONTEXT criar uma
variavel de sessão para armazenar essa diferença de tempo DST, essa seria a
unica vez que o lado cliente especificaria uma variavel de sessão:
SELECT
  rdb$set_context('USER_SESSION', 'CLIENT_DST_TIME', -2)
FROM RDB$DATABASE

Daí poderá fazer um select usando funções como dateadd e subtrair o
CLIENT_DST_TIME
(recem criado) para obter a data local do lado cliente:
SELECT
  DATEADD(HOUR,
    rdb$get_context('USER_SESSION', 'CLIENT_DST_TIME'),
    CURRENT_TIMESTAMP)
FROM RDB$DATABASE

Também ao armazenar um timestap usaria a mesmo método para que pudesse
gravar no database sempre em UTC.

[]´s

2018-02-27 2:50 GMT-03:00 Alexandre Pereira Bühler <
alexandre em simaoebuhler.com.br>:

> Bom dia,
> Procurei no google e em parte da documentação mas não achei nada que
> pudesse utilizar.
> Sabem me dizer se o Firebird 2.5 tem query com time zone ao estilo do
> postgresql?
> Exemplo:
>
> "AT TIME ZONE"
>
> Obrigado
>
>
> --
> Alexandre Pereira Bühler
> Linux User: 397.546
>
> Simão &  Bühler Ltda (Infobrindes)
> http://www.simaoebuhler.com.br
> alexandre em simaoebuhler.com.br
> Telefone: (41) 3039-5428
>
> Infobrindes (Simão &  Bühler Ltda)
> Brindes e material promocional.
> http://www.infobrindes.com.br
> karin em infobrindes.com.br
> Telefone: (41) 3082-8667
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://www.firebase.com.br/pes
> quisa_lista.html
>



-- 
--
B em B@BU     iB em M@B.  B em MBBO   MBBMMB em B@BZLr    E@@@@i      r@@@BU
vB em M@O     E em B@Bu   BBBM em 0   G em MMM@N8MBB em ZP5r  B em B@k      8B@@O
 OB em B@q   2 em BBBM    B em B@BO   BB em B@B,.:,7B em B@@L uB em B@,    OB em B@.
 ,@@@B@   @BBB@,    @BBB em 8   M em M@@@     PB em B@B  @@@BN   iB em B@L
  U em B@B2 LB em B@X     B em MBBO   MBBM em B     i em BBB@. 7 em B@Bi  B em B@E
   B@@@BiM em M@B.     @BBM em G   M em MMB@     v@@M em B,  G em B@Z v em B@B.
   7B em B@O em B@B5      B em B@B8   BBBM em B     Z@@@B@   iB@@@2 em B@Br
    NB em M@B em B8       @B em B@8   M em B@B em i:i75 em B@B em r    E@@B em B@Bq
    . em B@@@B@:       B em B@B@   @B@@@B em B@B@@@ME;     .BB em MBB@
     55.ANOS        OMOGBS   PBZGGOOMOO117,        7 em BBB@r
     ==============================================r@@@@F=====
     Gladiston Santana                             8 em B@B,
     Tecnologia da Informação                     G em B@B7
     Tel.:+551147873122 R:228                    :@B em B0
     Grupo VIDY - SGQ ISO9001 - 55 ANOS          @B em B@.
     Visite nosso site: www·vidy·com·br         BB@@@u
     Visite também : www·expolabor·com·br      GB em B@N



Mais detalhes sobre a lista de discussão lista