SQL - obtener una columna con solo el año, y otra con el mes en palabras en sql

 
Vista:
sin imagen de perfil

obtener una columna con solo el año, y otra con el mes en palabras en sql

Publicado por pablo (5 intervenciones) el 24/03/2015 20:08:02
Tengo una consulta en sql que me trae los siguientes datos;


Fecha rut Nombre Concepto Total
03-01-2014 0:00 15788555 ARANCIBIA ACEVEDO CARLOS FELIPE Valor Boleta 555556


necesito saber como obtener el año y el mes en palabras de la columna Fecha (esta es de tipo datetime),
en una nueva columna
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Leonardo Daniel A.
Val: 62
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

obtener una columna con solo el año, y otra con el mes en palabras en sql

Publicado por Leonardo Daniel A. (23 intervenciones) el 24/03/2015 20:24:20
pues si es base de datos SQL, (SQL Server, Oracle, Sybase, etc. que soporten funciones de usuario) deberas crear una funcion de usuario para que en el select la llames y mandes como parametro la fecha y te regrese el mes con palabra


el select pues es igual select year(fecha), traeMes(fecha), etc, etc, etc.


algo parecido a esto seria la funcion


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE FUNCTION dbo.traeMEs(@fecha date)
RETURNS string
AS
 
BEGIN
    DECLARE @ret string;
 
    if Month(@fecha) = 1
       @ret = "Enero"
    if Month(@fecha) = 2
       @ret = "Febrero"
 
    RETURN @ret;
END;
GO


siento no ayudar mas, no soy experto en SQL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

obtener una columna con solo el año, y otra con el mes en palabras en sql

Publicado por leonardo_josue (1173 intervenciones) el 24/03/2015 20:59:53
Hola Pablo:

Ya el tocayo Leonardo Daniel A. te dio un tip para hacerlo, sin embargo, aunque la idea es esa, todo depende de qué DBMS estás utilizando. Pequeño (o grandísimo) error de tu parte no decirnos con qué estás trabajando, pues cada motor de BD's maneja las fechas de manera especial y algunos de ellos proporcionan funciones justamente para lo que necesitas hacer, sin necesidad de tener que programar nada.

MySQL por ejemplo, maneja las funciones YEAR, MONTH y MONTHNAME para hacer lo que quieres:

1
2
3
4
5
6
7
mysql> SELECT NOW(), YEAR(NOW()), MONTH(NOW()), MONTHNAME(NOW());
+---------------------+-------------+--------------+------------------+
| NOW()               | YEAR(NOW()) | MONTH(NOW()) | MONTHNAME(NOW()) |
+---------------------+-------------+--------------+------------------+
| 2015-03-24 13:52:16 |        2015 |            3 | March            |
+---------------------+-------------+--------------+------------------+
1 row in set (0.00 sec)

Si quisieras obtener el nombre del MES en español, entonces podrías aplicar la función que comenta Leonardo, o si lo prefieres hacer un CASE-WHEN dentro del mismo SELECT, es decir, algo así:

1
2
3
4
5
6
7
8
9
10
11
12
mysql> SELECT NOW(), CASE MONTH(NOW())
    ->                  WHEN 1  THEN 'Enero'
    ->                  WHEN 2  THEN 'Febrero'
    ->                  WHEN 3  THEN 'Marzo'
    ->                  WHEN 12 THEN 'Diciembre'
    ->               END mes;
+---------------------+-------+
| NOW()               | mes   |
+---------------------+-------+
| 2015-03-24 13:56:28 | Marzo |
+---------------------+-------+
1 row in set (0.00 sec)

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

obtener una columna con solo el año, y otra con el mes en palabras en sql

Publicado por Pablo (5 intervenciones) el 24/03/2015 21:04:14
en sql server 2005
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

obtener una columna con solo el año, y otra con el mes en palabras en sql

Publicado por Pablo (5 intervenciones) el 24/03/2015 21:17:19
Al realizar la consulta respectiva por sql server 2005,

select Fecha from "nombre_tabla"


la fecha se muestra 03-01-2014,

lo cual necesito obtener es el año (2014) solo, y en otra columna el mes (01) en palabras (osea Enero)


gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar