none
Convertir hora en SQL Server con el formato: 19/07/2017 11:00:00 a. m RRS feed

  • Pregunta

  • Buenas noches, tengo el siguiente script para insertar en la base :

    INSERT INTO k_horario(OIDHorario, OIDEmpleado, OIDSalon, OIDTaller, Hora, Dia, Semana, Duracion, FechaCreacion) VALUES ('3de7d494-5de9-4ab5-8d30-816103f1a9a0', '396983d6-63bd-4a0d-82fa-fb2fdac90a6e', 'a574f65e-0e81-46ed-9a91-3d40302a6319', '6958a0d9-90e8-4e09-9196-a3523edc9589', '17/07/2017 06:00:00 a. m.', 1, 29, 60, '14/07/2017 09:42:31 a. m.')

    El problema es que cuando lo ejecuto me lanza el siguiente error:

    Msg 241, Level 16, State 1, Line 1 Conversion failed when converting datetime from character string.

    Agradecería mucho su ayuda para que mi insert sea exitoso.

    martes, 25 de julio de 2017 0:17

Respuestas

  • Puedes indicar el sufijo AM o PM para indicar si el tiempo es anterior o posterior al medio día (reloj de 12 horas) o establecer el tiempo basado en un reloj de 24 horas:

    DECLARE @Fecha1 datetime = '20170714 21:42:31';
    DECLARE @Fecha2 datetime = '20170714 09:42:31PM';
    SELECT @Fecha1, @Fecha2;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Moderador M martes, 25 de julio de 2017 15:06
    • Marcado como respuesta Gspindola martes, 25 de julio de 2017 15:56
    martes, 25 de julio de 2017 14:53

Todas las respuestas

  • Escribe los literales de fecha bajo un estándar como el formato ISO 8601 'YYYYMMDD hh:mm:ss'. Considera que el tiempo se basa en un reloj de 24 horas.

    INSERT INTO k_horario
        (OIDHorario, OIDEmpleado, OIDSalon, OIDTaller, Hora, Dia, Semana, Duracion, FechaCreacion) 
    VALUES 
        ('3de7d494-5de9-4ab5-8d30-816103f1a9a0', '396983d6-63bd-4a0d-82fa-fb2fdac90a6e', 
        'a574f65e-0e81-46ed-9a91-3d40302a6319', '6958a0d9-90e8-4e09-9196-a3523edc9589', 
        '20170717 06:00:00', 1, 29, 60, '20170714 09:42:31');
    GO



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 25 de julio de 2017 0:37
  • Gracias Willams Morales , tendría conflicto con los AM y PM , es decir, tendría que convertir a las 21 horas para indicar que son las 9 de la noche o por defecto el SQL pone el AM y PM.

    De antemano gracias y saludos.

    martes, 25 de julio de 2017 14:42
  • Puedes indicar el sufijo AM o PM para indicar si el tiempo es anterior o posterior al medio día (reloj de 12 horas) o establecer el tiempo basado en un reloj de 24 horas:

    DECLARE @Fecha1 datetime = '20170714 21:42:31';
    DECLARE @Fecha2 datetime = '20170714 09:42:31PM';
    SELECT @Fecha1, @Fecha2;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Moderador M martes, 25 de julio de 2017 15:06
    • Marcado como respuesta Gspindola martes, 25 de julio de 2017 15:56
    martes, 25 de julio de 2017 14:53
  • Muchas gracias por tu ayuda, saludos.
    martes, 25 de julio de 2017 15:57