Fórum Ajuda com SQL #57120
23/10/2006
0
Tenho um campo TDate e preciso atualizar o Ano de vencimento.
Como posso atualizar apenas o campo Ano e manter os outros campos como Dia e Mes?
Obrigado.
Yallebr
Curtir tópico
+ 0Posts
23/10/2006
Tiagorocha
Gostei + 0
23/10/2006
Delmar
veja se estes trechos de códigos podem lhe ajudar, eu não adaptei nada mas serve de exemplo para ver como pegar apenas o dia e o mês e ir concatenando
nataEscolarImpPaisagemSem1.QRmemo1.Lines.Text:=´AO(S) ´+formatdatetime(´dd´, DateTimePicker1.Date)+´ DIA(S) DO MÊS DE ´+ Ansiuppercase(formatdatetime(´mmmmm´, DateTimePicker1.Date))+ ´ DE ´+formatdatetime(´yyyy´, DateTimePicker1.Date)+´ CONCLUIU-SE....´;
nataEscolarImpPaisagemSem1.QRLabel1.Caption:=dmc.QescolaPadraocidade.AsString+´/´+dmc.QescolaPadraouf.AsString+ ´ ´+formatdatetime(´dd´, date())+´ DE ´+ Ansiuppercase(formatdatetime(´mmmmm´, date()))+ ´ DE ´+formatdatetime(´yyyy´, date());
Gostei + 0
24/10/2006
Yallebr
Me expressei muito mal, gostaria de fazer isso utilizando SQL. Utilizo FB 1.5
Obrigado
Gostei + 0
24/10/2006
Tiagorocha
Se cadastra no site Firebase (www.firebase.com.br) e procura a TBUDF na seção de Downloads (http://www.firebase.com.br/fb/downloads.php?id=14).
Gostei + 0
24/10/2006
Adriano Santos
Como assim ´CAMPO´ e manter os outros os outros campos como dia e mes? Não entendi.
Gostei + 0
25/10/2006
Yallebr
Tenho um campo chamado Data do time Date.
Eu tenho N registros assim
01/01/2005
01/02/2005
01/03/2005
15/04/2005
....
....
Eu quero manter o Dia e o Mes. e trocar isso para assim:
01/01/200[b:b8ddfe7eb8]6[/b:b8ddfe7eb8]
01/02/200[b:b8ddfe7eb8]6[/b:b8ddfe7eb8]
01/03/200[b:b8ddfe7eb8]6[/b:b8ddfe7eb8]
15/04/200[b:b8ddfe7eb8]6[/b:b8ddfe7eb8]
....
....
Tipo um IncYear porém em SQL. Obrigado.
Gostei + 0
25/10/2006
Motta
no Oracle ficaria algo assim :
select to_date(to_char(sysdate,´dd´) || to_char(sysdate,´mm´) || ´2013´,´ddmmyyyy´) from dual
o to_char extraí o dia ou mes da data do sistema
2013 é um constante e to_date reconverte para data
(passando o formato)
seria traduzir estas funcoes para ib
Gostei + 0
26/10/2006
Adriano Santos
select to_date(to_char(sysdate,´dd´) || to_char(sysdate,´mm´) || ´2013´,´ddmmyyyy´) from dual
Ahhhhhhhh entendi, pow eu tava tentando fazer exatemante isso pra IB/FB [b:fd13062607]Motta[/b:fd13062607], ainda não consegui.
Gostei + 0
26/10/2006
Motta
Gostei + 0
26/10/2006
Adriano Santos
Eu vou montar aqui, tava usando Extract, mas num sabia como usar o Cast. Acho que já sei como fazer.
Gostei + 0
26/10/2006
Tiagorocha
CAST(CAMPO AS TIPO)
Gostei + 0
26/10/2006
Adriano Santos
Fiz o teste aqui e funcionou:
UPDATE MINHA_TABELA SET MINHA_TABELA.MEU_CAMPO_DATA = (CAST(CAST(EXTRACT(DAY FROM MINHA_TABELA.MEU_CAMPO_DATA) AS INTEGER) AS INTEGER) || ´/´ || CAST(CAST(EXTRACT(MONTH FROM MINHA_TABELA.MEU_CAMPO_DATA) AS INTEGER) AS INTEGER) || ´/´ || CAST(CAST(EXTRACT(YEAR FROM (MINHA_TABELA.MEU_CAMPO_DATA +365)) AS INTEGER) AS INTEGER)) WHERE EXTRACT(YEAR FROM MINHA_TABELA.MEU_CAMPO_DATA) = 2002
Repare o [b:6df32f3409]+365[/b:6df32f3409]. Estou adicionando 365 dias ao ano, ou seja, + 1 ano.
Talvez com base nisso a galera consiga ver algo mais fácil.
Fui
Gostei + 0
27/10/2006
Tiagorocha
Repare o [b:dd3f78b594]+365[/b:dd3f78b594]. Estou adicionando 365 dias ao ano, ou seja, + 1 ano.
Talvez com base nisso a galera consiga ver algo mais fácil.
Fui[/quote:dd3f78b594]
Que tal assim:
SELECT CAST(CAST(EXTRACT(DAY FROM CURRENT_DATE) AS INTEGER) AS INTEGER)||´/´|| CAST(CAST(EXTRACT(MONTH FROM CURRENT_DATE) AS INTEGER) AS INTEGER)||´/´|| CAST(CAST(EXTRACT(YEAR FROM (CURRENT_DATE))+1 AS INTEGER) AS INTEGER) FROM RDB$DATABASE
Parabéns Adriano, o negócio é trabalhoso, mas é muito legal a idéia!
Gostei + 0
27/10/2006
Adriano Santos
Que tal assim:
SELECT CAST(CAST(EXTRACT(DAY FROM CURRENT_DATE) AS INTEGER) AS INTEGER)||´/´|| CAST(CAST(EXTRACT(MONTH FROM CURRENT_DATE) AS INTEGER) AS INTEGER)||´/´|| CAST(CAST(EXTRACT(YEAR FROM (CURRENT_DATE))+1 AS INTEGER) AS INTEGER) FROM RDB$DATABASE
[/quote:c360bb90cd]
Intão [b:c360bb90cd]ThiagoRocha[/b:c360bb90cd] pelo que entendi o [b:c360bb90cd]yallebr[/b:c360bb90cd] tem um campo na tabela que precisa ser acrescentado um ano, por isso fiz o esquema para adicionar 365 dias (1 ano).
O [b:c360bb90cd]CURRENT_DATE[/b:c360bb90cd] date vai adicionar 1 ano a data atual certo? Num sei, depende do que ele precisa. Se for como eu falei o meu esquema vai funcionar perfeitamente, porém ele pode ter uma tipo que o vencimento seja 2005 e vai ser mudada para 2006, ainda vai ficar errado rsrs...
Resumindo: os dois modos funcionam, valeu por ajudar tb. Agora ele escolhe o método que melhor se encaixa com a necessidade.
Opa, obrigado.
Gostei + 0
27/10/2006
Tiagorocha
Eu postei um código que eu estava usando ontem para testar a função EXTRACT, corrigido com base nas informações do código que você postou.
Meu código simplesmente exibe a data atual do sistema incrementada em um ano, somando 1 ao ano após este haver sido extraído pela função EXTRACT. Só isso, sem pretensão nenhuma de ser ´melhor´ que o seu, hehehe :P
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)