Principales respuestas
formato fecha en SQL

Pregunta
-
hola alguien podría ayudarme crear una consulta en sql que al mostrar la fecha, me la muestre de la siguiente manera;
OCTUBRE 2016
que muestre solo mes y año
select fechaIngreso from remTrabajadores
si tengo esa consulta anterior me muestra la fecha así;
2013-11-04
pero necesito que muestre mes y año ;
Octubre 2016
Gracias.
Respuestas
-
Otra opción es usar la función datename, pero el nombre del mes que devuelva depende del idioma actual de la sesión en SQL Server que se puede cambiar con SET LANGUAGE:
SET LANGUAGE 'spanish' SELECT DATENAME(month, T.fechaIngreso) + ' ' + CONVERT(varchar,YEAR(T.fechaIngreso)) as FechaIngreso FROM remTrabajadores T
- Marcado como respuesta DaviBar lunes, 24 de octubre de 2016 19:53
Todas las respuestas
-
Prueba con esto:
WITH M AS ( SELECT T.monthname, T.monthnumber FROM (VALUES ('Enero', 1), ('Febrero', 2), ('Marzo', 3), ('Abril', 4), ('Mayo', 5), ('Junio', 6), ('Julio', 7), ('Agosto', 8), ('Septiembre', 9), ('Octubre', 10), ('Noviembre', 11), ('Diciembre', 12) ) T(monthname, monthnumber) ) SELECT M.monthname + ' ' + CONVERT(varchar,YEAR(T.fechaIngreso)) as FechaIngreso FROM remTrabadores T LEFT OUTER JOIN M ON MONTH(T.fechaIngreso) = M.monthnumber
Esta consulta hace uso de Table Value Constructor y de Common Table Expressions
-
Otra opción es usar la función datename, pero el nombre del mes que devuelva depende del idioma actual de la sesión en SQL Server que se puede cambiar con SET LANGUAGE:
SET LANGUAGE 'spanish' SELECT DATENAME(month, T.fechaIngreso) + ' ' + CONVERT(varchar,YEAR(T.fechaIngreso)) as FechaIngreso FROM remTrabajadores T
- Marcado como respuesta DaviBar lunes, 24 de octubre de 2016 19:53
-
-
Si ocupas la versión 2012 o superior de SQL Server podrías usar la función FORMAT():
/*Prueba*/ DECLARE @Fecha date = '20131104'; SELECT UPPER(FORMAT(@Fecha, 'MMMM yyyy', 'es-ES')); /*Resultado: NOVIEMBRE 2013*/ /*Consulta*/ SELECT UPPER(FORMAT(fechaIngreso, 'MMMM yyyy', 'es-ES')) FROM remTrabajadores;
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
Cual version de SQL Server usas?
En la version 2012 en adelante cuentas con la funcion FORMAT, la cual no solo acepta una cadena de formato sino tambien el lenguaje a usar (language culture). Esto permite que el resultado sea concistente y no dependa de el lenguaje en uso.
DECLARE @d date = CURRENT_TIMESTAMP; SELECT UPPER(FORMAT ( @d, 'MMMM yyyy', 'es-EC' )) AS col1; GO
https://msdn.microsoft.com/en-us/library/ee825488(v=cs.20).aspxTe advierto que esta funcion puede afectar el rendimiento de la consulta si el numero de filas retornados es significante.
Otra opcion es usar la funcion DATENAME y YEAR para extraer y concatenar el nombre del mes y año. Ten en cuenta que el resultado de DATENAME depende del lenguaje en uso.
AMB
Some guidelines for posting questions...
AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas
- Editado HunchbackMVP lunes, 24 de octubre de 2016 15:46
-