duvida com select no sql server
olá pessoal
preciso buscar um registro no sql server
na minha tabela do sql tenho datetime inicial e datetime final
para buscar um registro eu passo apenas uma data
preciso que me retorna o nome do cliente se ele estiver entre a data inicial e final da tabela, mas passando apenas uma data qualquer, informada pelo usuário
tentei algo como e não retornou nada, mas existe um registro com esses dados na tabela
alguma ajuda
obrigado
select fu.tsGen_Funcionario_Codigo_ID ,
fu.tsGen_Funcionario_Nome_StrL ,
mf.tsGen_Movimentacao_Inicio_DatH,
tm.tsGen_TipoMovimento_Nome_StrL
from tsGen_MovimentacaoFuncionario mf
with (nolock)
inner join tsGen_TipoMovimento tm on tm.tsGen_TipoMovimento_Codigo_ID = mf.tsGen_TipoMovimento_Codigo_ID
inner join tsGen_Funcionario fu on fu.tsGen_Funcionario_Codigo_ID = mf.tsGen_Funcionario_Codigo_ID
where mf.tsGen_Funcionario_Codigo_ID = 3
and '2013-08-07' between mf.tsGen_Movimentacao_Inicio_DatH and mf.tsGen_Movimentacao_Inicio_DatH
preciso buscar um registro no sql server
na minha tabela do sql tenho datetime inicial e datetime final
para buscar um registro eu passo apenas uma data
preciso que me retorna o nome do cliente se ele estiver entre a data inicial e final da tabela, mas passando apenas uma data qualquer, informada pelo usuário
tentei algo como e não retornou nada, mas existe um registro com esses dados na tabela
alguma ajuda
obrigado
select fu.tsGen_Funcionario_Codigo_ID ,
fu.tsGen_Funcionario_Nome_StrL ,
mf.tsGen_Movimentacao_Inicio_DatH,
tm.tsGen_TipoMovimento_Nome_StrL
from tsGen_MovimentacaoFuncionario mf
with (nolock)
inner join tsGen_TipoMovimento tm on tm.tsGen_TipoMovimento_Codigo_ID = mf.tsGen_TipoMovimento_Codigo_ID
inner join tsGen_Funcionario fu on fu.tsGen_Funcionario_Codigo_ID = mf.tsGen_Funcionario_Codigo_ID
where mf.tsGen_Funcionario_Codigo_ID = 3
and '2013-08-07' between mf.tsGen_Movimentacao_Inicio_DatH and mf.tsGen_Movimentacao_Inicio_DatH
Marcos Corso
Curtidas 0
Respostas
Tiago
22/08/2013
Uma dica verifique as horas. Trabalhei com relatórios e as vezes as diferenças de registros eram por causa do formato da data que só buscava dd/MM/aaaa, ai quando eu acrescentava os segundos no filtro funcionava.
Espero que funcione
Espero que funcione
GOSTEI 0
Alex Lekao
22/08/2013
olá pessoal
preciso buscar um registro no sql server
na minha tabela do sql tenho datetime inicial e datetime final
para buscar um registro eu passo apenas uma data
preciso que me retorna o nome do cliente se ele estiver entre a data inicial e final da tabela, mas passando apenas uma data qualquer, informada pelo usuário
tentei algo como e não retornou nada, mas existe um registro com esses dados na tabela
alguma ajuda
obrigado
select fu.tsgen_funcionario_codigo_id ,
fu.tsgen_funcionario_nome_strl ,
mf.tsgen_movimentacao_inicio_dath,
tm.tsgen_tipomovimento_nome_strl
from tsgen_movimentacaofuncionario mf
with (nolock)
inner join tsgen_tipomovimento tm on tm.tsgen_tipomovimento_codigo_id = mf.tsgen_tipomovimento_codigo_id
inner join tsgen_funcionario fu on fu.tsgen_funcionario_codigo_id = mf.tsgen_funcionario_codigo_id
where mf.tsgen_funcionario_codigo_id = 3
and '2013-08-07' between mf.tsgen_movimentacao_inicio_dath and mf.tsgen_movimentacao_inicio_dath
preciso buscar um registro no sql server
na minha tabela do sql tenho datetime inicial e datetime final
para buscar um registro eu passo apenas uma data
preciso que me retorna o nome do cliente se ele estiver entre a data inicial e final da tabela, mas passando apenas uma data qualquer, informada pelo usuário
tentei algo como e não retornou nada, mas existe um registro com esses dados na tabela
alguma ajuda
obrigado
select fu.tsgen_funcionario_codigo_id ,
fu.tsgen_funcionario_nome_strl ,
mf.tsgen_movimentacao_inicio_dath,
tm.tsgen_tipomovimento_nome_strl
from tsgen_movimentacaofuncionario mf
with (nolock)
inner join tsgen_tipomovimento tm on tm.tsgen_tipomovimento_codigo_id = mf.tsgen_tipomovimento_codigo_id
inner join tsgen_funcionario fu on fu.tsgen_funcionario_codigo_id = mf.tsgen_funcionario_codigo_id
where mf.tsgen_funcionario_codigo_id = 3
and '2013-08-07' between mf.tsgen_movimentacao_inicio_dath and mf.tsgen_movimentacao_inicio_dath
isso mesmo, verifique isso que o Tiago comentou, caso precise considere utilizar na data inicial dd/mm/aaaa 00:00:00 por exemplo assim que inicia pelo comeco... rsrsr
e na data final considere utilziar 23:59:59 por exemplo.
uma outra dica seria converter as datas para o padrao brasileiro por exemplo na hora de pesquisar, exemplo convert(varchar,dateinicial,103), acredito que deva funcionar.
mais uma coisa, acredito que o seu where esteja errado, vc colocou and 'data' between campoini and campo fim, eu particularmente nunca usei assim, por isso estou acreditando que esteja errado, de uma checada nisso tambem.
Espero ter ajudado.
Abraco.
Alex - Lekao
GOSTEI 0
Roniere Almeida
22/08/2013
eu preciso muito revisar T-SQL, muito enferrujado.
GOSTEI 0
Alex Lekao
22/08/2013
kkkkk....
eu uso quase todo dia, mas baseado em SQL server, e me enrolo e esqueco algumas coisas as vezes.. rsrsr
eh muito bom ter sempre a maos material de consulta.
estou pensando em comprar mais livros para material de consulta para mim... so que vai ficando cada vez mais caro suprir essas necessidades... rsrsr
eu uso quase todo dia, mas baseado em SQL server, e me enrolo e esqueco algumas coisas as vezes.. rsrsr
eh muito bom ter sempre a maos material de consulta.
estou pensando em comprar mais livros para material de consulta para mim... so que vai ficando cada vez mais caro suprir essas necessidades... rsrsr
GOSTEI 0
Tiago
22/08/2013
Também não estou afiado no TSQL... ORM mal acostuma agente kkkk..
GOSTEI 0
Fabiano Carvalho
22/08/2013
Boa tarde.
O que voce pode fazer é por exemplo no seu parametro informar os segundos como já instruido.
se não quiser colocar manualmente ou não tiver os segundos converta-o para datetime!
por exemplo cast('2013-08-23' as datetime) ou convert(datetime,'23/0/2013',103)
pode ocorrer de trazer registros a menos ai voce pode usar
dateadd(day,1,convert(datetime,'23/0/2013',103))
Está um pouco confuso, mas é isso ai!
O que voce pode fazer é por exemplo no seu parametro informar os segundos como já instruido.
se não quiser colocar manualmente ou não tiver os segundos converta-o para datetime!
por exemplo cast('2013-08-23' as datetime) ou convert(datetime,'23/0/2013',103)
pode ocorrer de trazer registros a menos ai voce pode usar
dateadd(day,1,convert(datetime,'23/0/2013',103))
Está um pouco confuso, mas é isso ai!
GOSTEI 0
Marcos Corso
22/08/2013
resolvido
utilizei o convert(datetime(convert(varchar(10),meucampo,103))
agradeço aos que responderam
utilizei o convert(datetime(convert(varchar(10),meucampo,103))
agradeço aos que responderam
GOSTEI 0
Alex Lekao
22/08/2013
Também não estou afiado no TSQL... ORM mal acostuma agente kkkk..
eu nem sei o que eh ORM... kkkkk
GOSTEI 0
Alex Lekao
22/08/2013
blz...
obrigado por retornar como solucionado e compartilhar a solucao.
abraco.
Alex - Lekao
obrigado por retornar como solucionado e compartilhar a solucao.
abraco.
Alex - Lekao
GOSTEI 0
Roniere Almeida
22/08/2013
Também não estou afiado no TSQL... ORM mal acostuma agente kkkk..
eu tenho um livro novo de fundamentos T-SQL, preciso urgentemente começar a ler.
GOSTEI 0
Tiago
22/08/2013
Um prazer marcos, fico feliz que deu tudo certo.
GOSTEI 0
Alex Lekao
22/08/2013
Também não estou afiado no TSQL... ORM mal acostuma agente kkkk..
eu tenho um livro novo de fundamentos T-SQL, preciso urgentemente começar a ler.
nossa... eu nao tenho nenhum... a nao sei o MOC... e mesmo assim nem o uso mai... so uma vez ou outra que dou uma olhada, ficou como material de consulta... mas o meu material de consulta mesmo eh a internet... rsrse
GOSTEI 0
Tiago
22/08/2013
nossa... eu nao tenho nenhum... a nao sei o MOC... e mesmo assim nem o uso mai... so uma vez ou outra que dou uma olhada, ficou como material de consulta... mas o meu material de consulta mesmo eh a internet... rsrse
Esse sim é o melhor material "Internet"., Livro eu gosto quando eu quero ter uma noção de como funciona "as coisar por debaixo do pano".. Por exemplo, entender mesmo as raizes do assunto que pretendo me especializar. Mas quando estou com alguma dúvida pontual, a internet é a primeira opção.
GOSTEI 0
Roniere Almeida
22/08/2013
Também não estou afiado no TSQL... ORM mal acostuma agente kkkk..
eu tenho um livro novo de fundamentos T-SQL, preciso urgentemente começar a ler.
nossa... eu nao tenho nenhum... a nao sei o MOC... e mesmo assim nem o uso mai... so uma vez ou outra que dou uma olhada, ficou como material de consulta... mas o meu material de consulta mesmo eh a internet... rsrse
pois começar a ler e se surgir duvidas, listar para o amigos do forum!!!
GOSTEI 0
Tiago
22/08/2013
dúvidas é um processo normal do aprendizado, quando não temos dúvidas é porque ou sabemos de tudo ou sabemos de nada.... Nesses casos eu acredito é que não sabemos de nada, pois dúvidas faz parte.
GOSTEI 0
Alex Lekao
22/08/2013
Com ctz....
mas honestamente, uma coisa que tem me ajudado muito no meu dia a dia com banco eh procurar ajudar a galera que posta as duvidas e acompanhar alguns post, que assim vou agregando conhecimento... rsrsr
acho que tem sido uma grande escola para mim.... rsrsr
mas honestamente, uma coisa que tem me ajudado muito no meu dia a dia com banco eh procurar ajudar a galera que posta as duvidas e acompanhar alguns post, que assim vou agregando conhecimento... rsrsr
acho que tem sido uma grande escola para mim.... rsrsr
GOSTEI 0