Usuário com melhor resposta
Cadeia de caracteres não foi reconhecida como DateTime válido

Pergunta
-
Tenho uma aplicação que faz uma consulta ao banco e passa uma condição entre datas conforme abaixo:
public static DataTable stCloseCaseAll(int schoolId, string initialDate, string endDate) { var sb = new StringBuilder(); sb.Append(" SELECT C.SchoolID, C.DateClose, C.UserAdminID, C.CloseCaseID, C.Balance, C.PCName, U.Name "); sb.Append(" FROM sales.CloseCase AS C INNER JOIN "); sb.Append(" [authorization].UserAdmin AS U ON C.UserAdminID = U.UserAdminID "); sb.Append(" WHERE C.SchoolID = " + schoolId); sb.Append(" AND C.DateClose BETWEEN " + "CONVERT(DATETIME ,'" + DateTime.Parse(initialDate).ToString("yyyy/MM/dd") + "23:59:59') AND " + "CONVERT(DATETIME ,'" + DateTime.Parse(endDate).ToString("yyyy/MM/dd") + " 23:59:59')"); return AcessoDados.SelectDados(sb.ToString(), "conexao"); }
É retornado um erro na linha onde é feito a verificação do período entre datas.
Poderiam ajudar?
Obrigado.
Respostas
-
Olá o modo que fez o Parse está incorreto, veja um exemplo :
var d = DateTime.Parse(dt.ToString("yyyy/MM/dd"));
Veja que adicionei o ano mes dia dentro do Parse !
- Sugerido como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 13:49
- Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 17:53
-
na verdade, vc ta formatando pra padrão BR.
teria que ser assim:
string d = "21/05/2014 16:43:00"; Convert.ToDateTime(d).ToString("yyyy-MM-dd HH:mm:ss") //output: // 2014-05-21 16:43:00
esse é o formato utilizado no banco de dados
- Sugerido como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 13:49
- Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 17:53
-
Na verdade o parâmetro estava sendo passado em branco em initialDate e endDate por isso estava dando o erro.
Obrigado.
- Sugerido como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 13:49
- Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 17:53
Todas as Respostas
-
Olá o modo que fez o Parse está incorreto, veja um exemplo :
var d = DateTime.Parse(dt.ToString("yyyy/MM/dd"));
Veja que adicionei o ano mes dia dentro do Parse !
- Sugerido como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 13:49
- Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 17:53
-
na verdade, vc ta formatando pra padrão BR.
teria que ser assim:
string d = "21/05/2014 16:43:00"; Convert.ToDateTime(d).ToString("yyyy-MM-dd HH:mm:ss") //output: // 2014-05-21 16:43:00
esse é o formato utilizado no banco de dados
- Sugerido como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 13:49
- Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 17:53
-
Na verdade o parâmetro estava sendo passado em branco em initialDate e endDate por isso estava dando o erro.
Obrigado.
- Sugerido como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 13:49
- Marcado como Resposta Ricardo Barbosa CortesModerator sexta-feira, 23 de maio de 2014 17:53