Buscar

miércoles, 22 de abril de 2009

Guardar fecha sin hora SQL

Muchas veces necesitamos guardar la fecha sin hora en una base de sql, el problema surge cuando utilizamos la función
 GETDATE () 
que nos devuelve la fecha y la hora o cuando nuestra aplicación envía la fecha con la hora, una forma de corregir esto es utilizar la función
 CONVERT 
de esta forma

set dateformat dmy;
select CONVERT (datetime,CONVERT(VARCHAR,GETDATE(),101),101)

Esto lo que hace es convertir la fecha a un texto con un formato sin hora y después vuelvo y lo convierto a un dato de tipo fecha por si necesito realizar operaciones con este dato.

4 comentarios:

  1. hola q tal es ta muy bueno lo q aportas pero quisiera preguntarte sobre un proyecto q estoy realizando q su objetivo es crear automaticamente fechas , osea se introduce una fecha inicial y otra final esta se tendria q generar y guardar en una base de datos creada con access Ejemplo:
    Fecha inicial: 22/04/09
    fecha final: 22/05/09
    Base de Datos :
    Tema|fecha y q aqui se genere: 22/04/09 23/04/09......22/05/09

    ResponderEliminar
  2. Si quieres generar las fechas automáticamente cuando guardas la fecha inicial, pues creo que tendría que ser algo así. En el insert le sumas a la fecha inicial los días que quieres que tenga la fecha final o las otras fechas. Ejemplo

    Insert Into tabla(fechaIni,fecha2, fecha3) values(@fecha1,fecha1+30,fecha2+60)
    Esta seria la sentencia en sql, acuérdate que el arroa significa que es una variable, en Access la verdad hace mucho tiempo no trabajo con él me imagino que la consulta no cambia mucho.

    Espero te sirva.

    ResponderEliminar
  3. Gracias por tu ayuda a mi me funcionó con esta parte CONVERT (datetime,CONVERT(VARCHAR,GETDATE(),101),101). En mi caso tenía
    **********************************************
    CODIGO
    Select
    VEN.iIdVenta COD,
    UPPER(VEN.sNombreCliente) CLIENTE,
    VEN.dFecha FECHA,
    'según NV # '+ convert(varchar(5),VEN.iIdVenta)COD_VENTA,
    'según OP #' + convert(varchar(5),TRA.nIdTransferencia)COD_OP,
    VEN.nTotalD TOTALD, VEN.nTotalB TOTALB
    ,(select LCR.nLimiteCredito from LimiteCredito LCR where LCR.iCodigo = VEN.iIdCliente)LIMITE_CREDITO
    From Venta VEN, Solicitud SOL, Transferencia TRA
    Where SOL.iIdVenta = VEN.iIdVenta
    AND SOL.nIdSolicitud = TRA.nIdSolicitud
    AND CONVERT(datetime,CONVERT(VARCHAR,VEN.dFecha,101),101) <= '2009-11-20'
    ***********************************************

    ResponderEliminar
  4. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar