none
Ayudaaaa, convertir de TimeSpan a DateTime

    Pregunta

  • Buenos dias.

    Tengo el siguente problema.

    Estoy guardando en una tabla en una base de datos SQL 2008 R2 los dias y las horas que trabaja una persona.

    HoraDesde y HoraHasta de tipo time(0) en la base.

    En VB.net, tengo una DataGridView donde la voy completando con el nombre de la persona y la hora desde/hasta.

    Cree una clase "calendario" de este tipo.

        Private DiaSemana As String
        Private HoraDesde As DateTime
        Private HoraHasta As DateTime

    Cuando voy llenando la clase me da un error en el momento de asignar la HoraDesde, lo hago de esta manera.

    For Each row As DataGridViewRow In dgvDias.Rows
                If Not IsNothing(row.Cells("Dia").Value) Then
                    Dim HDs As New Calendario
                    HDs.DiaSemana = Convert.ToString(row.Cells("Dia").Value)

                    HDs.HoraDesde = row.Cells("HoraDesde").Value

    El error que me sale es el siguiente: "La conversión del tipo 'TimeSpan' en el tipo 'Date' no es válida."

    Como se puede resolver??? desde ya muchas gracias.

    jueves, 3 de noviembre de 2016 12:54

Respuestas

  • Es porque el tipo en la base de datos tiene time que solo permite guardar horas y debería se DateTime para poder tener también la fecha.  Si no vas a manejar fechas entones tus variables decláralas de tipo TimeSpan
    • Marcado como respuesta Javier_AG_2014 jueves, 3 de noviembre de 2016 13:33
    jueves, 3 de noviembre de 2016 13:17

Todas las respuestas

  • Es porque el tipo en la base de datos tiene time que solo permite guardar horas y debería se DateTime para poder tener también la fecha.  Si no vas a manejar fechas entones tus variables decláralas de tipo TimeSpan
    • Marcado como respuesta Javier_AG_2014 jueves, 3 de noviembre de 2016 13:33
    jueves, 3 de noviembre de 2016 13:17
  • Lo resolvi de esta forma.

                    Dim tHoraDesde As DateTime = New DateTime((row.Cells("HoraDesde").Value).Ticks)
                    HDs.HoraDesde = tHoraDesde

    Ni idea si es la forma correcta. pero anda.

    Desde ya muchas gracias!!!!

    jueves, 3 de noviembre de 2016 13:18
  • Siii, realmente es mas facil asi...declare la variable como TimeSpan y no tengo que hacer ninguna conversion. Me complique solo.

    Muchas gracias.

    jueves, 3 de noviembre de 2016 13:33