Pergunta

Provavelmente um clássico ... você sabe um truque fácil de recuperar um valor UTC de SYSDATE em Oracle (melhor seria obter algo trabalhando na versão 8 de bem).

Por agora eu tenho função personalizada: (

Cheers,

Stefan

Foi útil?

Solução

Você pode usar

SELECT SYS_EXTRACT_UTC(TIMESTAMP '2000-03-28 11:30:00.00 -02:00') FROM DUAL;

Você também pode precisar alterar seu fuso horário

ALTER SESSION SET TIME_ZONE = 'Europe/Berlin';

Ou lê-lo

SELECT SESSIONTIMEZONE, CURRENT_TIMESTAMP FROM dual;

Outras dicas

select sys_extract_utc(systimestamp) from dual;

não vai funcionar em Oracle 8, no entanto.

Normalmente, eu trabalho com colunas DATE, não o maior, mas mais preciso TIMESTAMP.

A seguir irá retornar a data UTC atual como apenas isso -. A data

CAST(sys_extract_utc(SYSTIMESTAMP) AS DATE)

Trabalho com datas UTC é grande porque eu não precisa se preocupar com a complexidade dos fusos horários. Apenas a exibição final para o usuário precisa compensações ou outros problemas.

Se você quiser um timestamp em vez de apenas um encontro com sysdate, você pode especificar um fuso horário usando SYSTIMESTAMP:

select systimestamp at time zone 'UTC' from dual

saídas: 29-AUG-17 06.51.14.781998000 PM UTC

Eu estou usando:

SELECT CAST(SYSTIMESTAMP AT TIME ZONE 'UTC' AS DATE) FROM DUAL;

É bom trabalhar para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top