• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rogi_cps

[Resolvido] Ajuda com comando para SQL for DB2 5.0

15 mensagens neste tópico

Estou procurando comandos basicos em SQL para DB2 (a versão usada pela empresa é 5.0).

Na verdade o que eu estou precisando é o seguinte:  Tenho um campo  data, no formato americano (EUA - aaaa-mm-dd), e gostaria de saber qual o dia da semana referenta a data.

Por Ex.:  2008-10-25 (sabado) ou (7)

Preciso de uma luz para o comando em SQL usado em DB2 5.0, sendo que o mesmo pode retornar o dia da semana ou apenas o numero do dia da semana.

Fico muito grato com a ajuda de todos.

Germano

PS.:  minha forma de escrever pode ser um pouco diferente, sou brasileiro.  Agradeço a compreensão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu perguntei ao google e aparentemente a função que precisas chama-se DAYOFWEEK e recebe datas precisamente nesse formato que indicaste que aparentemente é o formato default desse SGBD.

Tens aqui informação mais detalhada sobre funções de data no db2

http://www.ibm.com/developerworks/data/library/techarticle/0211yip/0211yip3.html

Somente para ter certeza... eu estava verificando o link referido, e vejo que o autor utiliza em DB2 8.1, e somente gostaria de saber se funcionaria em DB2 5.0.

Este comando é um comando nativo (padrão) para todas as versões??

Desde já, agradeço sua colaboração.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei, desculpa. Apenas pesquisei no google por curiosidade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei, desculpa. Apenas pesquisei no google por curiosidade.

Agradeço assim mesmo....  na segunda vou aplicar o comando.... caso funcione eu postarei o resultado como positivo e encerrarei o tópico.

Valeu!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu perguntei ao google e aparentemente a função que precisas chama-se DAYOFWEEK e recebe datas precisamente nesse formato que indicaste que aparentemente é o formato default desse SGBD.

Tens aqui informação mais detalhada sobre funções de data no db2

http://www.ibm.com/developerworks/data/library/techarticle/0211yip/0211yip3.html

Este comando não é nativo do DB2 5.0, se ainda tiverem alguma sugestão, eu aceito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Se bem me lembro o dia da semana só foi implementado na versão 6 do DB2 e já foi há alguns anos. :P

Assim de repente vejo duas hipóteses:

* implementas tu mesmo a função  dia da semana ( tendo em conta os anos bissextos ) e depois fazes pré-processamento antes de obteres a informação. Claro que isto serve que tiveres hipótese criares a função no servidor.

* criares numa linguagem numa linguagem de programação (tipo perl) que  permita aceder à base de dados, retirar os dados, manipulares e pós-processares.

No entanto vou falar com uns amigos meus, a ver se eles se lembrar de fazer algo semelhante nessa versão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agradeço a ajuda....

Criar algo no servidor seria impossivel, do modo que o servidor esta amarrado.

O que estamos tentando fazer é uma query, para retirar os dados do servidor e precisariamos que nessa query retornasse o dia da semana.  ela naum vai alterasr os dados do servidor e sim gerar relatório.

Precisaria que essa data da semana venha a ser rotornada em query e naum no servidor.  A base sempre vai ser a mesma, e informo  que nos dados tem campo data, sendo assim, somente naum estamos conseguindo transformar essa data em dia da semana. 

Agradeço toda aajuda que tens me dado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Bem podes sempre calcular inline o dia da semana, como se calculasses uma média (p. ex:) , claro que torna a query bastante mais "pesada".

este site, que explica como chegar de uma forma mais "simples" ao dia da semana.

Já não me lembro como se faz esse tipo de contas, pois o "custo" acaba por ser elevado se for um processo rotineiro...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Bem podes sempre calcular inline o dia da semana, como se calculasses uma média (p. ex:) , claro que torna a query bastante mais "pesada".

este site, que explica como chegar de uma forma mais "simples" ao dia da semana.

Já não me lembro como se faz esse tipo de contas, pois o "custo" acaba por ser elevado se for um processo rotineiro...

Será um processo mensal para a tirada de daods para construção de relatórios fora da ferramenta DB2, portanto seria sim rotina mensal

Vou ver e posto a resposta

Agradeço a té agora.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Bem podes sempre calcular inline o dia da semana, como se calculasses uma média (p. ex:) , claro que torna a query bastante mais "pesada".

este site, que explica como chegar de uma forma mais "simples" ao dia da semana.

Já não me lembro como se faz esse tipo de contas, pois o "custo" acaba por ser elevado se for um processo rotineiro...

Esse processo passaria em mais ou menos 13 a 40 mil linhas.....  haveria algo mais fácil ou rápido???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Encontrei algo num manual pré histórico que tinha perdido nas minha coisas que dá o que precisas.

então é:

SELECT DISTINCT 

    MINHA_DATA ,

    ( DAYS ( MINHA_DATA ) - DAYS( MINHA_DATA ) / 7 * 7 )

FROM

    MINHA_TABELA

esta query "retorna" uma data e um numero correspondente ao dia da semana. Tens que confirmar se este numero está no formato 0-6 (Domingo-Sábado) ou no formato 1-7 (Segunda-Domingo).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Encontrei algo num manual pré histórico que tinha perdido nas minha coisas que dá o que precisas.

então é:

SELECT DISTINCT 

    MINHA_DATA ,

    ( DAYS ( MINHA_DATA ) - DAYS( MINHA_DATA ) / 7 * 7 )

FROM

    MINHA_TABELA

esta query "retorna" uma data e um numero correspondente ao dia da semana. Tens que confirmar se este numero está no formato 0-6 (Domingo-Sábado) ou no formato 1-7 (Segunda-Domingo).

Vou tentar e posto a resposta....

Agradeço imensamente, até agora.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agradeço a ajuda de todos...  a query funcionou perfeitamente...

Somente terei qwue acrescentar +1 na formulação para obeter na forma que preciso, mas eh perfeita.

E tem mais, para o que preciso não presa muito, ainda mais nos padrões que mencionei anteriormente.

Agradeço a colaboração de todos!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Ainda bem que ficaste com a tua situação resolvida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora