none
consulta procedimiento almacendado fecha y hora

    Pregunta

  • buenas tardes amigos 

    estoy haciendo una aplicación de estacionamiento de vehículos en vb.net 2015 y sql 2014 

    estoy tratando de hacer un procedimiento almacenado para mostrar las patentes los  vehículo que fuero ingresados hoy para mostrarlo en una grilla que  muestre la fecha y hora  y su codigo , patente

    la tabla esta compuesta de esta forma

    idEntradaVehiculo(int)

    pantete = char(8)

    FechaHoraEntrada = campo datetime 

    Codigo  int

    procedimiento almacenado 

    create procedure NC_ListarPlaca
    AS
    BEGIN
    SELECT Placa,FechaHoraEntrada,Codigo FROM EntradaVehiculo WHERE  DATE_FORMAT(FechaHoraEntrada, '%Y-%m-%d') = DATE(NOW())
    END
    
    
    me manda el error de 'DATE_FORMAT' no es un nombre de función integrada reconocido.

    viernes, 7 de octubre de 2016 18:42

Respuestas

  • SELECT Placa,FechaHoraEntrada,Codigo
    FROM EntradaVehiculo
    WHERE convert(date,FechaHoraEntrada) >= convert(date,GETDATE()) AND convert(date,FechaHoraEntrada) <= convert(date,GETDATE())

    Saludos mi estimado !!!!!!!

    • Marcado como respuesta djnilo viernes, 7 de octubre de 2016 21:39
    viernes, 7 de octubre de 2016 20:44
  • Hola djnilo, si lo que quieres es obtener los vehiculos ingresados hoy, yo usaría

    WHERE convert(date,FechaHoraEntrada) = convert(date,GETDATE()) 

    pues nunca habrá en tu registro algun vehículo que haya ingreso despues de ahora (GETDATE()). De forma general para una condición como la de tu WHERE puedes usar

    WHERE convert(date,FechaHoraEntrada) BETWEEN convert(date,FechaInicial) AND convert(date,FechaFinal)

    Saludos.

    • Marcado como respuesta djnilo sábado, 8 de octubre de 2016 19:10
    sábado, 8 de octubre de 2016 18:54

Todas las respuestas

  • Estimado la solucion seria de esta forma

    create procedure NC_ListarPlaca AS BEGIN SELECT Placa,FechaHoraEntrada,Codigo FROM EntradaVehiculo WHERE FechaHoraEntrada = convert(datetime,getdate()) END

    Prueba con esto y me avisas deberia de solucionar tu problema.

    Par SQL Server se utiliza la funcionar CONVERT para cambiar el tipo de datos.

    CONVERT(TIPO DE DATO A CONVERTIR,DATO A CONVERTIR )

    Saludos!!!!!!!!!!!!!!

    viernes, 7 de octubre de 2016 19:53
  • muchas gracias por responder Raul Sarachaga 

    pero me devuelve vacios los datos no muestra nada

     Public Function MOSTRAR_MATRICULAS(ByVal obj As Capa_Entidad.VregistroEntrada)
            Dim cn As New SqlConnection(conexion.Connectionstring)
            Dim dtprov As New Data.DataTable
            Try
                cn.Open()
    
                dapprov.SelectCommand = cn.CreateCommand
                dapprov.SelectCommand.CommandText = "NC_ListarPlaca"
                dapprov.SelectCommand.CommandType = CommandType.StoredProcedure
                dapprov.SelectCommand.ExecuteNonQuery()
                dapprov.Fill(dtprov)
                Return dtprov
            Catch ex As Exception
                MsgBox(ex.Message)
                Throw New Exception(ex.Message)
            Finally
                If cn.State = ConnectionState.Open Then
                    cn.Dispose()
                    cn.Close()
                End If
            End Try
        End Function

    viernes, 7 de octubre de 2016 20:09
  • la hice de esta forma pero sigue sin mostrar datos la consulta

    SELECT Placa,FechaHoraEntrada,Codigo
    FROM EntradaVehiculo
    WHERE FechaHoraEntrada >= GETDATE() AND FechaHoraEntrada <= GETDATE()

    viernes, 7 de octubre de 2016 20:24
  • viernes, 7 de octubre de 2016 20:28
  • SELECT Placa,FechaHoraEntrada,Codigo
    FROM EntradaVehiculo
    WHERE convert(date,FechaHoraEntrada) >= convert(date,GETDATE()) AND convert(date,FechaHoraEntrada) <= convert(date,GETDATE())

    Saludos mi estimado !!!!!!!

    • Marcado como respuesta djnilo viernes, 7 de octubre de 2016 21:39
    viernes, 7 de octubre de 2016 20:44
  • muchas gracias esta me funciono gracias Raul Sarachaga 

    SELECT Placa,FechaHoraEntrada,Codigo
    FROM EntradaVehiculo
    WHERE convert(date,FechaHoraEntrada) >= convert(date,GETDATE()) AND convert(date,FechaHoraEntrada) <= convert(date,GETDATE())

    ¿porque hay ponerle la convert(date?

    SELECT Placa,FechaHoraEntrada,CodigoFROM EntradaVehiculoWHERE FechaHoraEntrada >= GETDATE() AND FechaHoraEntrada <= GETDATE()

    viernes, 7 de octubre de 2016 21:41
  • Estimado cuando ejecutas:

    SELECT GETDATE() 

    Te devolvera algo como esto : 2016-01-02 8:00 , con todo y hora, lo que hace el convert(date,getdate()) es traerte solo la fecha.

    Ahora no sabia como estabas llenando el valor FechaHoraEmtrada, me indicaste que era un datetime pero no sabia como se estaba guardando podria haber sido : 2016-07-08 8:00  o 2016-07-08 00:00 en caso no estes llenandolo con hora. Es por eso que mejor todo lo llevas a DATE y haces las comparaciones entre fechas discriminando las horas .

    Date una vuelta por mi blog 

    https://aprendebi.wordpress.com/

    Y sugiere en un comentario de que te gustaria que escriba

    Saludos

    viernes, 7 de octubre de 2016 22:52
  • Estimado cuando ejecutas:

    SELECT GETDATE() 

    Te devolvera algo como esto : 2016-01-02 8:00 , con todo y hora, lo que hace el convert(date,getdate()) es traerte solo la fecha.

    Ahora no sabia como estabas llenando el valor FechaHoraEmtrada, me indicaste que era un datetime pero no sabia como se estaba guardando podria haber sido : 2016-07-08 8:00  o 2016-07-08 00:00 en caso no estes llenandolo con hora. Es por eso que mejor todo lo llevas a DATE y haces las comparaciones entre fechas discriminando las horas .

    Date una vuelta por mi blog 

    https://aprendebi.wordpress.com/

    Y sugiere en un comentario de que te gustaria que escriba

    Saludos

    Gracias por responder Raul sarachaga
    viernes, 7 de octubre de 2016 23:13
  • Hola djnilo, si lo que quieres es obtener los vehiculos ingresados hoy, yo usaría

    WHERE convert(date,FechaHoraEntrada) = convert(date,GETDATE()) 

    pues nunca habrá en tu registro algun vehículo que haya ingreso despues de ahora (GETDATE()). De forma general para una condición como la de tu WHERE puedes usar

    WHERE convert(date,FechaHoraEntrada) BETWEEN convert(date,FechaInicial) AND convert(date,FechaFinal)

    Saludos.

    • Marcado como respuesta djnilo sábado, 8 de octubre de 2016 19:10
    sábado, 8 de octubre de 2016 18:54