rogi_cps Posted April 23, 2009 at 06:30 PM Report #258677 Posted April 23, 2009 at 06:30 PM 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.
pedrotuga Posted April 23, 2009 at 07:08 PM Report #258691 Posted April 23, 2009 at 07:08 PM 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
rogi_cps Posted April 24, 2009 at 09:38 PM Author Report #258908 Posted April 24, 2009 at 09:38 PM 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.
pedrotuga Posted April 25, 2009 at 12:21 AM Report #258924 Posted April 25, 2009 at 12:21 AM Não sei, desculpa. Apenas pesquisei no google por curiosidade.
rogi_cps Posted April 25, 2009 at 12:29 AM Author Report #258925 Posted April 25, 2009 at 12:29 AM 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!!!
rogi_cps Posted May 11, 2009 at 03:57 PM Author Report #263031 Posted May 11, 2009 at 03:57 PM 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.
nunocanc Posted May 12, 2009 at 10:43 AM Report #263316 Posted May 12, 2009 at 10:43 AM Boas, Se bem me lembro o dia da semana só foi implementado na versão 6 do DB2 e já foi há alguns anos. 😛 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.
rogi_cps Posted May 12, 2009 at 01:16 PM Author Report #263370 Posted May 12, 2009 at 01:16 PM 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.
nunocanc Posted May 12, 2009 at 04:48 PM Report #263491 Posted May 12, 2009 at 04:48 PM 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". Vê 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...
rogi_cps Posted May 12, 2009 at 10:38 PM Author Report #263647 Posted May 12, 2009 at 10:38 PM 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". Vê 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.
rogi_cps Posted May 12, 2009 at 10:42 PM Author Report #263648 Posted May 12, 2009 at 10:42 PM 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". Vê 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???
nunocanc Posted May 13, 2009 at 07:50 AM Report #263681 Posted May 13, 2009 at 07:50 AM 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).
rogi_cps Posted May 13, 2009 at 04:01 PM Author Report #263871 Posted May 13, 2009 at 04:01 PM 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.
rogi_cps Posted May 15, 2009 at 11:00 PM Author Report #264556 Posted May 15, 2009 at 11:00 PM 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!
nunocanc Posted May 17, 2009 at 11:15 AM Report #264782 Posted May 17, 2009 at 11:15 AM Boas, Ainda bem que ficaste com a tua situação resolvida.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now