Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Moreira

Select 10 dias antes

Recommended Posts

Ola pessoal

 

Seguinte, tenho uma tabela com clientes certo. em um dos campos gravo o dia de vencimento de pagamento de determinado cliente.

 

A duvida é como faço um select 10 dias antes do vencimento do cliente.

 

Poe exemplo:

 

Tenho um cliente cadastrado com o vencimento dele para o dia 20

gostaria de no dia 10 ele aparecesse um um select que vou dar nessa tabela.

 

Como faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo veja o erro

 

Microsoft OLE DB Provider for ODBC Drivers (0x80040E31)

[MySQL][ODBC 3.51 Driver]

[mysqld-5.0.22-community-nt]FUNCTION banco.GETDATE does not exist

OBS: Lembrando que meu Banco é MYSQL

 

Tenho uma "TABELA" com o campo "DiaVenc"

 

gravo no "DiaVenc" o dia de vencimento do Cliente.

o dia vem somente o dia mesmo como exemplo:

 

10

ou

05

ou

14

Etc.....

 

Como dou um select buscando os clientes que vencem daqui a 10 dias

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa camarada, não sabia que era MySQL. O MySQL tem várias funções que retornam a data: NOW(), CURRENT_TIMESTAMP(), CURRENT_TIME(), CURRENT_DATE(), CURTIME()

 

Escolha uma delas XP

Compartilhar este post


Link para o post
Compartilhar em outros sites

nagaozen

 

Estou fazendo assim o select

 

SELECT * FROM cliente Where DiaVenc = (Now()+10) order by Nome

 

Estou fazendo isso no dia 02/10/2008 e tenho 2 registros com o dia "12" gravado e nao lista nenhum registro

 

o que pode estar ocorrendo

 

OBS: tentei com todos os codigos que você passou

Compartilhar este post


Link para o post
Compartilhar em outros sites

em vez de

 

(Now()+10)

experimente

 

Dateadd("d", 10 , Date)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu erro Mario

 

Fiz Assim o select

 

"SELECT * FROM cliente Where DiaVenc = Dateadd(""d"", 10 , Date) order by Nome"

 

Veja o erro

 

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[MySQL][ODBC 3.51 Driver][mysqld-5.0.22-community-nt]Unknown column 'Date' in 'where clause'

Compartilhar este post


Link para o post
Compartilhar em outros sites
"SELECT * FROM cliente Where DiaVenc = " & Dateadd("d", 10 , Date) & " order by Nome"

Compartilhar este post


Link para o post
Compartilhar em outros sites

QUal é o seu BD? se for access antes altere para o formato mm/dd/aaaa para consultar corretamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

no meu caso usando InterBase resolvi assim

 

select * from agenda where data_inicio = (CURRENT_DATE + 10) order by data_inicio

assim pega somente os registros daqui a 10 dias

 

 

select * from agenda where data_inicio <= (CURRENT_DATE + 10) order by data_inicio

e assim todos os registros q tem a data menor q o dia atual + 10

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pepa

 

Meu banco é MYSQL

 

no meu rodo dessa forma que passou

 

SELECT * FROM cliente Where DiaVenc = (CURRENT_DATE + 10) order by Nome

 

Porem seguinte nao exibi por exemplo os que estao no dia 13 que seria 10 dias

 

mas se eu uso o <= como passou ele lista um monte de clientes.

 

O que sera que pode estar ocorrendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou usar A função DATEDIFF calcula a diferença entre as datas data2 e data1 , retornando o resultado como um inteiro, cuja unidade é definida pelo valor unidade . Observe os exemplos:

 

SELECT DATEDIFF ( DAY , '02/01/2008' , '05/25/2008' )

resultado = 114 (dias)

 

SELECT DATEDIFF ( MONTH , '02/01/2008' , '05/25/2008' )

resultado = 3(meses)

 

SELECT DATEDIFF ( YEAR , '02/01/2006' , '05/25/2008' )

resultado = 2(anos)

 

Dessa forma, a expressão SQL que retorna o número de dias vivido por você até hoje é:

 

SELECT DATEDIFF(DAY, suadata, GETDATE())

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.