COMPARAR HORA
galera to tentando realizar uma consulta que ta me deixando doido.
no banco tenho uma tabela com os seguintes campos:
codigo int pk
dia int ex. 19
inicio time ex. 13:00
fim time ex. 15:00
ai preciso pesquisar nessa tabela da seguinte forma:
alguem pode me ajudar?
no banco tenho uma tabela com os seguintes campos:
codigo int pk
dia int ex. 19
inicio time ex. 13:00
fim time ex. 15:00
ai preciso pesquisar nessa tabela da seguinte forma:
SELECT codigo FROM tabela WHERE dia = [Ô] + datetime.now.dayofweek.tostring() + [Ô] AND inicio >= [Ô] + datetime.now.timetoday.tostring() + [Ô] AND fim <= [Ô] + datetime.now.timetoday.tostring()
alguem pode me ajudar?
Qual é o problema?
Se você utilizar parâmetros na consulta você resolve este problema(que provavelmente seja formatação de valores).
Se você utilizar parâmetros na consulta você resolve este problema(que provavelmente seja formatação de valores).
Qual o Banco de Dados?
GUIMORAES123, a consulta nunca retorna dados,
FILMAN, SQL SERVER 2008,
FILMAN, SQL SERVER 2008,
você já tentou consultar direto pelo Sql Server?
ex: SELECT codigo FROM tabela WHERE dia = 19 AND inicio >= 13:00 AND fim <= 15:00
O select seria este, da forma que explicou.
Tenta rodar ele no Sql Server, se retornar algo é só fazer o mesmo dentro do sistema, caso contrário, terá que rever seu código.
Ao meu ver, consulta com hora teria que ter formato, ex: inicio: 13:00:00, você deve ver o tipo de formatação do sql server, ex: select convert(varchar, [Ô]13:00:00[Ô], 8);
Testa ai.
ex: SELECT codigo FROM tabela WHERE dia = 19 AND inicio >= 13:00 AND fim <= 15:00
O select seria este, da forma que explicou.
Tenta rodar ele no Sql Server, se retornar algo é só fazer o mesmo dentro do sistema, caso contrário, terá que rever seu código.
Ao meu ver, consulta com hora teria que ter formato, ex: inicio: 13:00:00, você deve ver o tipo de formatação do sql server, ex: select convert(varchar, [Ô]13:00:00[Ô], 8);
Testa ai.
A função que você está informando vai retornar o dia da semana (seg, ter...)
Se estiver usando o visual studio, tenta assim:
Se estiver no SQL Server tenta a função DatePart :
Click aqui para vê instrução da função
Se estiver usando o visual studio, tenta assim:
SELECT codigo FROM tabela WHERE dia = [Ô] + Format(Now, [Ô]dd[Ô])+ [Ô] AND inicio >= [Ô] + Format(Now, [Ô]hh:mm[Ô])+ [Ô] AND fim <= [Ô] + Format(Now, [Ô]hh:mm[Ô])
Se estiver no SQL Server tenta a função DatePart :
Click aqui para vê instrução da função
Faça assim
Espero ter ajudado
Dim vSQL As String = [Ô][Ô]
vSQL = [Ô]SELECT codigo [Ô]
vSQL = vSQL & [Ô] FROM tabela [Ô]
vSQL = vSQL & [Ô] WHERE dia = [Ô] & Format(DateTime.Now, [Ô]dd[Ô])
vSQL = vSQL & [Ô] AND inicio >= CAST([ô][Ô] & Format(DateTime.Now, [Ô]HH:mm[Ô]) & [Ô][ô] AS TIME) [Ô]
vSQL = vSQL & [Ô] AND fim <= CAST([ô][Ô] & Format(DateTime.Now, [Ô]HH:mm[Ô]) & [Ô][ô])[Ô]
Espero ter ajudado
Tópico encerrado , respostas não são mais permitidas