none
formato de fecha RRS feed

  • Pregunta

  • saludos una consulta ya repetida sobre fechas tengo una select

    select L.FECHA_FACTURA from linea L

    que me arroja los resultados

    asi

    2016-06-17 10:40:39.000

    quiero que solo salga la fecha asi 

    2016-06-17 00:00:00.000

    porque de esta query se va a hacer un insert en otra tabla y quiero que se guarde asi, solo fechas sin horas.

    gracias

    jueves, 7 de julio de 2016 21:29

Respuestas

  • Augusto C,

    Puedes truncar el tiempo de la siguiente manera:

    SELECT CONVERT(datetime, CONVERT(date, L.FECHA_FACTURA)) FROM linea L;

    Por otro lado, si la tabla destino sólo espera fecha y no tiempo, ¿por qué no defines la columna con un tipo date que permita sólo la fecha?

    • Marcado como respuesta Augusto C viernes, 8 de julio de 2016 2:06
    jueves, 7 de julio de 2016 21:32

Todas las respuestas

  • Augusto C,

    Puedes truncar el tiempo de la siguiente manera:

    SELECT CONVERT(datetime, CONVERT(date, L.FECHA_FACTURA)) FROM linea L;

    Por otro lado, si la tabla destino sólo espera fecha y no tiempo, ¿por qué no defines la columna con un tipo date que permita sólo la fecha?

    • Marcado como respuesta Augusto C viernes, 8 de julio de 2016 2:06
    jueves, 7 de julio de 2016 21:32
  • Augusto C,

    Puedes truncar el tiempo de la siguiente manera:

    SELECT CONVERT(datetime, CONVERT(date, L.FECHA_FACTURA)) FROM linea L;

    Por otro lado, si la tabla destino sólo espera fecha y no tiempo, ¿por qué no defines la columna con un tipo date que permita sólo la fecha?

    Hola Williams 

    gracias por tu respuesta

    yo iva a poner algo como esto

    CONVERT(CHAR(10),L.FECHA_FACTURA,103)

    pero no estoy seguro, 

    cual forma es ams standard?

    jueves, 7 de julio de 2016 21:35
  • Augusto C,

    El problema que veo de tu propuesta es que el valor que retornas es de tipo texto con un formato definido de dd/MM/yyyy (formato 103) y pierdes la posibilidad de que la aplicación reciba el valor como un tipo datetime (como debería de ser) y que sea la misma aplicación la que realice el formato, yo recomendaría que realices de la manera que te propongo con el objetivo de mantener el tipo fecha.

    jueves, 7 de julio de 2016 21:42
  • Augusto C,

    El problema que veo de tu propuesta es que el valor que retornas es de tipo texto con un formato definido de dd/MM/yyyy (formato 103) y pierdes la posibilidad de que la aplicación reciba el valor como un tipo datetime (como debería de ser) y que sea la misma aplicación la que realice el formato, yo recomendaría que realices de la manera que te propongo con el objetivo de mantener el tipo fecha.

    Algo adicional Williams el tipo date viene apartir de sql server 2008 no es asi??
    jueves, 7 de julio de 2016 21:55
  • Augusto C,

    Efectivamente, el tipo date apareció junto con la versión 2008 de SQL Server. Si tienes una versión anterior y en la idea de mantener el tipo fecha puedes hacer lo siguiente:

    SELECT DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))

    Fíjate que retorna sólo la fecha y descarta el tiempo, cambia la función GETDATE() por el nombre de tu columna

    jueves, 7 de julio de 2016 22:10