locked
Convertir Fecha / Hora RRS feed

  • Pregunta

  • Que tal... tengo una consulta espero que se pueda realizar tengo una fecha/hora de la siguiente manere y lo que quiera realizar es lo siguiente :

    FECHA / HORA : 2013-09-16 08:25:56.903 , y quiero convertir la hora en su hora nocturna es decir que daria de la siguiente manera  2013-09-16 20:25:56.903 , aca mas ejemplo de como quieiara que salga

    2013-09-16 10:25:56.903 am  a 2013-09-16 20:25:56.903 pm                                                                                                  2013-09-16 13:25:56.903 pm   a 2013-09-16 01:25:56.903 am                                                                                             2013-09-16 18:25:56.903 pm  a 2013-09-16 06 :25:56.903  am                                                                                                



    JAVB


    • Editado javb89 lunes, 16 de septiembre de 2013 13:36
    lunes, 16 de septiembre de 2013 13:35

Respuestas

  • Podrías lograrlo de esta forma concatenando

    SELECT CONVERT(VARCHAR, GETDATE(),111) + ' ' + STUFF(CONVERT(VARCHAR, GETDATE(),109), 1, 12, '') AS FormatoAMPM


    Si se solucionó tu consulta no olvides marcar la respuesta de esta forma mantendremos el orden en el Foro.

    José Carlos Barba Gutierrez
    Lima - Perú
    Saludos

    • Propuesto como respuesta Pachecora martes, 17 de septiembre de 2013 14:00
    • Marcado como respuesta Uriel Almendra viernes, 27 de septiembre de 2013 15:49
    lunes, 16 de septiembre de 2013 14:31
  • Si bien puedes resolverlo con TSQL, no es un lenguaje para capas de presentación. Lo mas eficiente y correcto es que devuelvas como datetime, y en tu aplicacion apliques el formato.

    Como hacerlo ya dependería del lenguaje que este usando, en c# podrías hacerlo como indica en esta pagina.

    http://www.csharp-examples.net/string-format-datetime/

    Preview
    
    // create date time 2008-03-09 16:05:07.123
    DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
    
    String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   year
    String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  month
    String.Format("{0:d dd ddd dddd}", dt);  // "9 09 Sun Sunday" day
    String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      hour 12/24
    String.Format("{0:m mm}",          dt);  // "5 05"            minute
    String.Format("{0:s ss}",          dt);  // "7 07"            second
    String.Format("{0:f ff fff ffff}", dt);  // "1 12 123 1230"   sec.fraction
    String.Format("{0:F FF FFF FFFF}", dt);  // "1 12 123 123"    without zeroes
    String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
    String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   time zone

    • Marcado como respuesta Uriel Almendra viernes, 27 de septiembre de 2013 15:49
    lunes, 16 de septiembre de 2013 14:50
  • Es raro lo que planteas, ent odo caso

    SELECT DATEADD(HOUR, 12, '20130916 10:25:56') AS HoraNocturna

    Si se solucionó tu problema, no olvides marcarla como respusta.



    • Marcado como respuesta Uriel Almendra viernes, 27 de septiembre de 2013 15:49
    lunes, 16 de septiembre de 2013 14:25

Todas las respuestas

  • Hola

    puedes lograr el formato de 24 horas de esta forma

    SELECT convert(datetime, GETDATE(), 121) -- yyyy-mm-dd hh:mm:ss.mmm
    SELECT convert(datetime, MiColumna, 121) FROM MiTabla -- yyyy-mm-dd hh:mm:ss.mmm

    espero te sea de utilidad


    Si se solucionó tu consulta no olvides marcar la respuesta de esta forma mantendremos el orden en el Foro.

    José Carlos Barba Gutierrez
    Lima - Perú
    Saludos

    lunes, 16 de septiembre de 2013 13:51
  • es algo claro pero me gustaria que quede de estas maneras te paso un ejemplo de como quisiera que quede:

    2013-09-16 10:25:56.903 am  CONVERTIR LA HORA 10am  10 pm(22)

    2013-09-16 22:25:56.903 pm , espero haya sido entendible.

    GRACIAS.


    JAVB

    lunes, 16 de septiembre de 2013 14:04
  • Es raro lo que planteas, ent odo caso

    SELECT DATEADD(HOUR, 12, '20130916 10:25:56') AS HoraNocturna

    Si se solucionó tu problema, no olvides marcarla como respusta.



    • Marcado como respuesta Uriel Almendra viernes, 27 de septiembre de 2013 15:49
    lunes, 16 de septiembre de 2013 14:25
  • Podrías lograrlo de esta forma concatenando

    SELECT CONVERT(VARCHAR, GETDATE(),111) + ' ' + STUFF(CONVERT(VARCHAR, GETDATE(),109), 1, 12, '') AS FormatoAMPM


    Si se solucionó tu consulta no olvides marcar la respuesta de esta forma mantendremos el orden en el Foro.

    José Carlos Barba Gutierrez
    Lima - Perú
    Saludos

    • Propuesto como respuesta Pachecora martes, 17 de septiembre de 2013 14:00
    • Marcado como respuesta Uriel Almendra viernes, 27 de septiembre de 2013 15:49
    lunes, 16 de septiembre de 2013 14:31
  • Excelente MUCHAS GRACIAS.

    JAVB

    lunes, 16 de septiembre de 2013 14:41
  • Si bien puedes resolverlo con TSQL, no es un lenguaje para capas de presentación. Lo mas eficiente y correcto es que devuelvas como datetime, y en tu aplicacion apliques el formato.

    Como hacerlo ya dependería del lenguaje que este usando, en c# podrías hacerlo como indica en esta pagina.

    http://www.csharp-examples.net/string-format-datetime/

    Preview
    
    // create date time 2008-03-09 16:05:07.123
    DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
    
    String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   year
    String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  month
    String.Format("{0:d dd ddd dddd}", dt);  // "9 09 Sun Sunday" day
    String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      hour 12/24
    String.Format("{0:m mm}",          dt);  // "5 05"            minute
    String.Format("{0:s ss}",          dt);  // "7 07"            second
    String.Format("{0:f ff fff ffff}", dt);  // "1 12 123 1230"   sec.fraction
    String.Format("{0:F FF FFF FFFF}", dt);  // "1 12 123 123"    without zeroes
    String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
    String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   time zone

    • Marcado como respuesta Uriel Almendra viernes, 27 de septiembre de 2013 15:49
    lunes, 16 de septiembre de 2013 14:50
  • Como estan?

    Tengo algo similar, en mi tabla se guarda en el campo datetime de esta manera 2013-09-16 08:25:56.903, mi pregunta es, cuando vaya hacer una sentencia donde diga que me busque todos los registros de una fecha a otra fecha, como seria el formato a buscar, o en el caso de visual basic.Net cuando lo coloque en un dtpicker solo indicaria la fecha corta es decir 2013-09-16 a 2014-09-16. habra problemas con esto?


    Enyelber Altube

    martes, 25 de marzo de 2014 19:20