Ir para conteúdo

POWERED BY:

Arquivado

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

Ds.suporting

comparar datas

Recommended Posts

Olá Pessoal

 

Estou com uma dúvida quanto as datas no asp.net.

Como faço para comparar a data de hoje com a data de hoje?? eu preciso analizar se a data que está no banco de dados é menor que a data de hoje.

o comando now retorna a data no formato ex:3/3/2009(sem o zero no dia e no mês) já o campo date no Mysql tem o formato ex: 2009-03-03.

Quero fazer um select que retorne apenas as linhas na qual a data de inscricação for menor que a data de hoje.

Mas não estou consguindo fazer! Tem o problema do formato da data, e também não sei se é só colocar no Where (data_inscricao < @data_hoje).

 

 

Dim id As String
		Dim status As String
		Dim numero_vagas As String
		Dim numero_inscritos As String
		Dim inscricao_ate As String
		Dim data_hoje As Date = DateString
		Dim cnn As MySqlConnection
		Dim cmd As MySqlCommand
		Dim strmysql As String = "select id, status, numero_vagas, numero_inscritos, inscricao_ate from cursos_gratuitos where (numero_vagas=numero_inscritos) or (inscricao_ate < @data_hoje)"
		cnn = New MySqlConnection("server=****; user id=***; password=****; database=****")
		cmd = New MySqlCommand(strmysql, cnn)
		cmd.Parameters.Add(New MySqlParameter("@data_hoje", data_hoje))
		cnn.Open()
		Dim dr As MySqlDataReader
		dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
		If dr.HasRows Then
			'aqui vai o cod do update para mudar o status do curso		   
		End If
		cnn.Close()
		cnn = Nothing
		cmd = Nothing

Me ajudem please!

Compartilhar este post


Link para o post
Compartilhar em outros sites

string data_loje = DateTime.Now.ToString("yyyy-mm-dd")
cmd.Parameters.Add(New MySqlParameter("@data_hoje", data_hoje))

Assim você formata a data conforme o banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também estou com mesmo problema, mas se coloco >= '"& DateTime.Now.ToString("yyyy-mm-dd") &"' o resultado nao vem nada, e se coloco <= vem todos os resultados, mesmo sendo datas posteriores a de agora.

 

Se uso a mesma consulta dentro do banco >= '2008-03-05 00:49:12' (horario agora) o resultado vem certinho, tanto >=, = ou <=

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engano meu!

mm é minutos

MM é mês

 

Fica assim:

DateTime.Now.ToString("yyyy-MM-dd")

ou assim para trazer a hora também

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da mesma forma num rolou!

 

Assim tras todos os registros independente de ser antes ou depois de agora (<):

sdsAgenda.SelectCommand = "SELECT varcharTitulo, datatimeHorario, varcharLocal, textDescricao FROM tbagenda WHERE datatimeHorario < '" & DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") & "' ORDER BY datatimeHorario"

 

Agora da forma que preciso (> ou >=) não vem nenhum resultado.

 

No MySql está assim:

- Tipo: datetime

- Valor: 2008-03-13 22:00:00

- Variável do servidor: %Y-%m-%d %H:%i:%s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que é problema de cutura. Faça o seguinte, execute o código e faça um debug, veja qual o valor disso:

sdsAgenda.SelectCommand
Pega essa sql e joga em algum software do mysql e tenta executa, provavelmente não vai funcionar. Ai você verifica o erro no sql, corrigi, e repassa no C#. Qualquer progresso, avise-nos!

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.