none
Formato de fecha sql server RRS feed

  • Pregunta

  • Saludos, tengo un columna en sql server 2005 que es de tipo datetime y estoy buscando que con un select me regresara el formato;

    dddd + d , HH:mm

    dia con letra, # dia, hora en formato 24hrs.

    Viernes 21, 23:12

     

    ¿Como se hace esto?


    • Editado omarifr viernes, 21 de octubre de 2011 22:21
    viernes, 21 de octubre de 2011 21:41

Respuestas

  • Le dejo aquí algo para pensar:  ¿Qué le parece más bien transmitir la fecha como fecha y simplemente darle formato en la interfase gráfica?  Las interfases gráficas tienen muchísimas más habilidades de conversión y formato que las existentes en SQL, porque al fin y al cabo, SQL es acerca de guardar y proveer datos, no de la presentación de estos datos.

    Si usted manda el valor en su forma original (datetime), podrá entonces darle el formato que usted guste, o mejor aún el formato que el cliente (ser humano) gusta, porque al fin y al cabo la idea es complacer al humano que usa el producto.


    Jose R. MCP
    • Marcado como respuesta omarifr lunes, 24 de octubre de 2011 15:24
    sábado, 22 de octubre de 2011 17:16
  • Intenta con el siguiente código:

    declare @fecha_hora datetime
    set @fecha_hora='20110105 23:12'
    
    
    SELECT CASE when DATEPART(dw,@fecha_hora) = 1 then 'Domingo' when
    DATEPART(dw,@fecha_hora) = 2 then 'Lunes'
    when DATEPART(dw,@fecha_hora) = 3 then 'Martes'
    when DATEPART(dw,@fecha_hora) = 4 then 'Miercoles'
    when DATEPART(dw,@fecha_hora) = 5 then 'Jueves'
    when DATEPART(dw,@fecha_hora) = 6 then 'Viernes'
    when DATEPART(dw,@fecha_hora) = 7 then 'sabado'
    END + ' ' + CAST(DATEPART(day,@fecha_hora) AS varchar(10)) 
    + ', ' + CAST(DATEPART(hour,@fecha_hora) AS varchar(15))
    + ':' +  CAST(DATEPART(minute,@fecha_hora) AS varchar(15))

    Cualquier duda con gusto te apoyamos.

     


    "El talento es una disciplina tenaz y una larga paciencia"  Gustave Flaubert

     Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

     

    • Propuesto como respuesta Abraham Forchue F domingo, 23 de octubre de 2011 22:49
    • Votado como útil Abraham Forchue F domingo, 23 de octubre de 2011 22:52
    • Marcado como respuesta omarifr lunes, 24 de octubre de 2011 15:24
    viernes, 21 de octubre de 2011 22:53
  • No recuerdo que exista un formato pre-definido como el que buscas, pero quizas puedas combinar un poquito de algun otro formato existente. Para ver los formatos existentes, chequea la funcion CONVERT en los BOL.

    declare @dt datetime = getdate() - 15;
    
    select
    	@dt,
    	datename(dw, @dt) + ' ' + stuff(substring(convert(varchar(35), @dt, 120), 9, 8), 3, 1, ',') as dt;
    go
    

     


    AMB

    Some guidelines for posting questions...

    • Propuesto como respuesta Abraham Forchue F domingo, 23 de octubre de 2011 22:52
    • Marcado como respuesta omarifr lunes, 24 de octubre de 2011 15:24
    viernes, 21 de octubre de 2011 22:56

Todas las respuestas

  • Intenta con el siguiente código:

    declare @fecha_hora datetime
    set @fecha_hora='20110105 23:12'
    
    
    SELECT CASE when DATEPART(dw,@fecha_hora) = 1 then 'Domingo' when
    DATEPART(dw,@fecha_hora) = 2 then 'Lunes'
    when DATEPART(dw,@fecha_hora) = 3 then 'Martes'
    when DATEPART(dw,@fecha_hora) = 4 then 'Miercoles'
    when DATEPART(dw,@fecha_hora) = 5 then 'Jueves'
    when DATEPART(dw,@fecha_hora) = 6 then 'Viernes'
    when DATEPART(dw,@fecha_hora) = 7 then 'sabado'
    END + ' ' + CAST(DATEPART(day,@fecha_hora) AS varchar(10)) 
    + ', ' + CAST(DATEPART(hour,@fecha_hora) AS varchar(15))
    + ':' +  CAST(DATEPART(minute,@fecha_hora) AS varchar(15))

    Cualquier duda con gusto te apoyamos.

     


    "El talento es una disciplina tenaz y una larga paciencia"  Gustave Flaubert

     Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

     

    • Propuesto como respuesta Abraham Forchue F domingo, 23 de octubre de 2011 22:49
    • Votado como útil Abraham Forchue F domingo, 23 de octubre de 2011 22:52
    • Marcado como respuesta omarifr lunes, 24 de octubre de 2011 15:24
    viernes, 21 de octubre de 2011 22:53
  • No recuerdo que exista un formato pre-definido como el que buscas, pero quizas puedas combinar un poquito de algun otro formato existente. Para ver los formatos existentes, chequea la funcion CONVERT en los BOL.

    declare @dt datetime = getdate() - 15;
    
    select
    	@dt,
    	datename(dw, @dt) + ' ' + stuff(substring(convert(varchar(35), @dt, 120), 9, 8), 3, 1, ',') as dt;
    go
    

     


    AMB

    Some guidelines for posting questions...

    • Propuesto como respuesta Abraham Forchue F domingo, 23 de octubre de 2011 22:52
    • Marcado como respuesta omarifr lunes, 24 de octubre de 2011 15:24
    viernes, 21 de octubre de 2011 22:56
  • Le dejo aquí algo para pensar:  ¿Qué le parece más bien transmitir la fecha como fecha y simplemente darle formato en la interfase gráfica?  Las interfases gráficas tienen muchísimas más habilidades de conversión y formato que las existentes en SQL, porque al fin y al cabo, SQL es acerca de guardar y proveer datos, no de la presentación de estos datos.

    Si usted manda el valor en su forma original (datetime), podrá entonces darle el formato que usted guste, o mejor aún el formato que el cliente (ser humano) gusta, porque al fin y al cabo la idea es complacer al humano que usa el producto.


    Jose R. MCP
    • Marcado como respuesta omarifr lunes, 24 de octubre de 2011 15:24
    sábado, 22 de octubre de 2011 17:16