cintiadel 0 Denunciar post Postado Abril 20, 2009 Estou com o seguinte erro: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. The statement has been terminated. estou fazendo um select em um campo datetime no sql2005 que no banco esta no seguinte formato : yyyy-MM-dd hh:mm:ss mas qdo vou trabalhar com ele na minha aplicação ele me mostra dd/MM/yyyy ja tentei ate converter de varias formas: Format(Convert.ToDateTime(dr_sei("campo"),"yyyy-MM-dd") ou exerc = Format(dr_sei("campo"), "yyyy-MM-dd") ou texercicio = texercicio.Year & "-" & texercicio.Month & "-" & texercicio.Day ja tentei tbm convert direto no comando sql e nda n faço ideia do q pode estar acontecendo Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 21, 2009 Tente o seguinte: texercicio = Convert.ToDateTime(dr_sei("campo")).ToString("dd/MM/yyyy") Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Abril 21, 2009 Eu gosto de usar os métodos "tipados" do DataReader, assim: DateTime minhaData = dr.GetDateTime(dr.GetOrdinal("campo_que_eh_data")) int meuNumero = dr.GetInt32(dr.GetOrdinal("campo_que_eh_numerico")) Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 22, 2009 tentei das duas formas e nda bom vou tentar explicar de novo: na minha tabela do sql, na base de dados o campo que eu preciso esta como datetime, e no seguinte formato: yyyy-MM-dd hh:mm:ss. Exemplo:2009-01-27 00:00:00.000 tenho q pegar o valor desse campo, e jogar em outra tabela fazendo um insert. qdo peço para ser exibido na tela o meu comando insert ele mostra esse campo com o seguinte valor: dd/MM/yyyy, no caso 27/1/2009. e qdo peço pra exibir em um grid pra ver como ele está pegando o valor, ele mostra: 27/1/2009 00:00:00, mas é certeza q no banco esta: 2009-01-27 00:00:00.000 pq ele n esta pegando corretamente? e o q devo fazer pra corrigir essa falha???? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 22, 2009 Ocorre o mesmo erro, tanto com o código que eu postei e o código que o Oenning postou? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 22, 2009 Ocorre o mesmo erro, tanto com o código que eu postei e o código que o Oenning postou? Abraços... yes, ja ate tentei abrir um novo projeto pra tentar fazer de novo, mas da o mesmo erro. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 23, 2009 Certeza que esse seu campo é data. Qual é o retorno do select se você alimentar um campo string? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 23, 2009 Certeza que esse seu campo é data. Qual é o retorno do select se você alimentar um campo string? Abraços... Sim tanto na tabela origem quanto na tabela de destino o campo esta como datetime.Se eu mudo pra varchar, na tabela de destino funciona. Tentei fazer o insert direto no banco colocando a data nesse formato "2009-01-27 00:00:00.000" funciona, mas na aplicação ela tah pegando a data em outro formato como ja disse. já tentei de todas essas formas, debugando percebi que nessa linha: texercicio = Convert.ToDateTime("1900-01-01")tbm n tah ocorrendo a formataçaosegue o codigo: Dim texercicio As Date If IsDBNull(dr_sei("texercicio")) Then texercicio = Convert.ToDateTime("1900-01-01") Else 'texercicio = dr_sei.GetDateTime(dr_sei.GetOrdinal("texercicio")) 'texercicio = Convert.ToDateTime(dr_sei("texercicio")).ToString("dd/MM/yyyy") 'texercicio = Format(dr_sei("texercicio"), "yyyy-MM-dd") Dim dia_texercicio = Day(dr_sei("texercicio")) Dim mes_texercicio = Month(dr_sei("texercicio")) Dim ano_texercicio = Year(dr_sei("texercicio")) texercicio = ano_texercicio & "-" & mes_texercicio & "-" & dia_texercicio 'texercicio = texercicio.Year & "-" & texercicio.Month & "-" & texercicio.Day End If sql.CommandText = sql.CommandText & texercicio & "'," Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 23, 2009 Pera ae. Seu problema esta na hora de alimentar a variável ou na hora de alimentar uma tabela? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 23, 2009 Pera ae. Seu problema esta na hora de alimentar a variável ou na hora de alimentar uma tabela? Abraços... os dois Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 23, 2009 Vamos por parte, só alimentar a variável tem que dar certo. O erro que você postou ocorre quado tenta gravar no banco ou quando tentar alimentar a variável. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
heavyromulo 0 Denunciar post Postado Abril 23, 2009 Certeza que esse seu campo é data. Qual é o retorno do select se você alimentar um campo string? Abraços... tentou no SQL forçá-lo para string? Ex: Select minha_data_string = Convert(varchar(19), campo_que_eh_data , 120) From Minha_Tabela mas na hora de ler com o DataReader teria que ler assim: string minhaData = dr.GetString(dr.GetOrdinal("minha_data_string")) Abraços, Romulo Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 24, 2009 Vamos por parte, só alimentar a variável tem que dar certo. O erro que você postou ocorre quado tenta gravar no banco ou quando tentar alimentar a variável. Abraços... nos dois casos ele apresenta a data da seguinte forma 27/1/2009 Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 24, 2009 Então primeira passo OK, gravo na variável certo? Como esta seu insert no banco de dados? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 29, 2009 Então primeira passo OK, gravo na variável certo? Como esta seu insert no banco de dados? Abraços... consegui fazer mudando o tipo da variavel para stringagora estou com o mesmo erro mas é num select "SELECT * FROM [tabela] where dt_entrega BETWEEN '" & Now.Date & "' and '" & Now.Date.AddDays(-2) & "'"no banco a data está no seguinte formato: dd/MM/yyyy hh:mm:ss - Exemplo: 1/5/2009 00:00:00 Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 29, 2009 Na sua sua data de um replace na / para . Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 29, 2009 Na sua sua data de um replace na / para . Abraços... faço o replace ali no select? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 29, 2009 Pode ser. Mas faça utilizando os recursos do C# e não do Sql. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 30, 2009 Pode ser. Mas faça utilizando os recursos do C# e não do Sql. Abraços... estou fazendo da seguinte forma mas ele n está entrando no while por algum motivo, no banco tbm n tah retornando, mas tem dados na tabela q atende as condições Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound Dim conexao As New Data.SqlClient.SqlConnection("conexao") Dim comando As New Data.SqlClient.SqlCommand Dim dtentrega As Data.SqlClient.SqlDataReader Dim lbl_atraso As Label = CType(e.Row.FindControl("lbl_atraso"), Label) If e.Row.RowType = DataControlRowType.DataRow Then conexao.Open() comando.Connection = conexao comando.CommandText = "SELECT * from tabela where dt_entrega BETWEEN '" & Now.Date.ToString("yyyy-MM-dd") & "' and '" & Now.Date.AddDays(-2).ToString("yyyy-MM-dd") & "'" dtentrega = comando.ExecuteReader() While dtentrega.Read() If ((CType(dtentrega("dt_entrega"), DateTime) = Date.Now.Date)) Then lbl_atraso.Text = "Já venceu o prazo de entrega" ElseIf ((CType(dtentrega("dt_entrega"), DateTime) = Date.Now.Date.AddDays(-2))) Then lbl_atraso.Text = "Faltam 2 dias para o prazo de entrega" End If End While End If conexao.Close() End Sub Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Abril 30, 2009 Mas se no banco não esta retornando o valor que esta usando no Where ta errado. Não vi onde colocou o Replace. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites