No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Práctico de SQL

Curso Práctico de SQL

Israel Vázquez Morales

Israel Vázquez Morales

Seleccionar por año

14/29
Recursos

Aportes 461

Preguntas 16

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Solución del reto

SELECT *
    FROM platzi.alumnos
    WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
        AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 05;

Mis soluciones:

SELECT *
FROM platzi.alumnos
WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018 
AND (DATE_PART('MONTH', fecha_incorporacion)) = 05 ;

SELECT *
FROM platzi.alumnos
WHERE  fecha_incorporacion like '2018 -05 %';

Dejo este aporte para l@s compañer@s que están comenzando y aún no se encuentran trabajando en la industria.

Lo que está explicando este profesor es sumamente importante, sus ejemplos tal cual te va a llegar en el requerimiento de parte de tus lideres.
(en caso de querer seguir el path de data science) Por lo general luego de las reuniones de negocio o el cliente en cuestión, va a necesitar “la cantidad de usuarios que se registraron en el ultimo trimestre, pero que tengan mas de 3 interacciones diarias con la plataforma y tengan entre 24 y 28 años”

Entonces tu capacidad de responder estas preguntas vía querys utilizando SQL va a hacer que tu perfil profesional se eleve. Recuerda siempre preguntar como se armaron las tablas de donde se están consultando los datos, ya que sumamente importante entender a la perfección cada feature para dar el valor que tu cliente necesita.

Te deseo lo mejor !

pd: yo estoy como ds y estoy repasando por 2 vez este curso y lo haría nuevamente las veces que sea necesario para poder refrescar mis conocimientos.

Es bastante intuitivo, solo toca poner un AND y seguir las instrucciones cambiando año por mes al agregar la nueva condición de la siguiente manera:

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
		DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion = 2020 AND mes_incorporacion = 05;

y así conseguimos todos los alumnos que se incorporaron en mayo del 2020.

Una solucion un poco diferente

select *
FROM platzi.alumnos a
where fecha_incorporacion >= '2018-05-01' and fecha_incorporacion  <  '2018-06-01'

Yo estoy usando MySQL WorkBench:

La solución al reto seria:

<SELECT *
FROM platzi.alumnos
WHERE YEAR(fecha_incorporacion)=2018 AND MONTH(fecha_incorporacion)=5;>
SELECT *
FROM platzi.alumnos
WHERE
EXTRACT(YEAR FROM fecha_incorporacion) = 2018
AND EXTRACT(MONTH FROM fecha_incorporacion)= 5
;

14. Seleccionar por año

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2019

SELECT *
FROM platzi.alumnos
WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion
	FROM platzi.alumnos
)AS alumnos_con_anio
WHERE anio_incorporacion = 2020;

-- RETO

SELECT *
FROM (
    SELECT *,
        DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
        DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
    FROM platzi.alumnos
) AS alumnos_con_anio_mes
WHERE anio_incorporacion = 2020
    AND mes_incorporacion = 7;

RETO
Seleccionar los alumnos que se incorporaron en el año 2018 y en el mes de mayo.


Solución 1:

SELECT *
FROM platzi.alumnos
WHERE EXTRACT(YEAR FROM fecha_incorporacion) = 2018
AND EXTRACT(MONTH FROM fecha_incorporacion) = 5;

Solución 2:

SELECT *
FROM platzi.alumnos
WHERE DATE_PART('YEAR', fecha_incorporacion) = 2018
AND DATE_PART('MONTH', fecha_incorporacion) = 5;

Solución 3:

SELECT *
FROM(
	SELECT *, 
		EXTRACT(YEAR FROM fecha_incorporacion) anio_incorporacion, 
		EXTRACT(MONTH FROM fecha_incorporacion) mes_incorporacion
	FROM platzi.alumnos
) alumnos_anio
WHERE anio_incorporacion = 2018
AND mes_incorporacion = 5;

Solución 4:

SELECT * 
FROM platzi.alumnos
WHERE TO_CHAR(fecha_incorporacion, 'YYYYMM') = '201805';

Mi solución con SQL Server
SELECT *
FROM alumnos
WHERE YEAR(fecha_incorporacion) = 2018 AND MONTH(fecha_incorporacion) = 5;

```js SELECT FECHA_INCORPORACION, EXTRACT(YEAR FROM FECHA_INCORPORACION) AS ANIO, EXTRACT(MONTH FROM FECHA_INCORPORACION) AS MES, EXTRACT(DAY FROM FECHA_INCORPORACION) AS DIA, CASE WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 1 THEN 'Lunes' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 2 THEN 'Martes' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 3 THEN 'Miercoles' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 4 THEN 'Jueves' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 5 THEN 'Viernes' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 6 THEN 'Sabado' WHEN EXTRACT(ISODOW FROM FECHA_INCORPORACION) = 7 THEN 'Domingo' END AS DIA_SEMANA, EXTRACT(HOUR FROM FECHA_INCORPORACION) AS HORA, EXTRACT(MINUTE FROM FECHA_INCORPORACION) AS MINUTO, EXTRACT(SECOND FROM FECHA_INCORPORACION) AS SEGUNDOS FROM PLATZI.ALUMNOS; ```

Mi solución, mostrando además otra forma de agregar más de un valor al where por el cual filtrar ^-^

SELECT *
FROM (
	SELECT *, 
	DATE_PART('YEAR', fecha_incorporacion) as anio, 
	DATE_PART('MONTH', fecha_incorporacion) as mes
	FROM platzi.alumnos
) alumnos_with_date
WHERE (anio, mes) = (2018,5);

Otra forma de filtrar usando date_trunc

select *
from platzi.alumnos
where date_trunc('year', fecha_incorporacion)::date = '2018-01-01'

Mi solución con ambas formas aprendidas en clase.

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
	AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5;
	
SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion, 
		DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio_mes
WHERE anio_incorporacion = 2018
	AND mes_incorporacion = 5;
SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 05;

Mi reto

SELECT *
FROM platzi.alumnos
WHERE DATE_PART ('YEAR', fecha_incorporacion) = 2018 and DATE_PART ('month', fecha_incorporacion) = 5;

Además me encontré con la manera de filtrar por día de la semana, entonces como reto personal, me pregunte cual es el día de la semana en donde mas se registraron personas para el 2018

SELECT  COUNT(*) AS total,
case
	when extract(DOW from fecha_incorporacion) = 0 then 'domingo'
	when extract(DOW from fecha_incorporacion) = 1 then 'lunes'
	when extract(DOW from fecha_incorporacion) = 2 then 'martes'
	when extract(DOW from fecha_incorporacion) = 3 then 'miercoles'
	when extract(DOW from fecha_incorporacion) = 4 then 'jueves'
	when extract(DOW from fecha_incorporacion) = 5 then 'viernes'
	when extract(DOW from fecha_incorporacion) = 6 then 'sabado'
end dia_semana
from platzi.alumnos
where extract(YEAR from fecha_incorporacion) = 2018
group by dia_semana
order by total desc;

Encontré que para ese año los miércoles son los días que generan mayores suscripciones o matriculas

Aquí las soluciones:

select * FROM platzi.alumnos
WHERE EXTRACT(year from fecha_incorporacion) = 2018
and
extract(MONTH from fecha_incorporacion) = 5;
select * FROM platzi.alumnos
WHERE date_part('year', fecha_incorporacion) = 2018
AND
date_part('month', fecha_incorporacion) = 5;
select *
FROM (
    SELECT EXTRACT(YEAR from fecha_incorporacion) as anio,
    extract(month from fecha_incorporacion) as mes, *
    FROM platzi.alumnos
) as pla
WHERE anio = 2018 
AND mes = 5
order by fecha_incorporacion asc;

Mi solución al reto

SELECT *
FROM (
	SELECT *,
		DATE_PART('YEAR', fecha_incorporacion) AS annio_inicio,
		DATE_PART('MONTH', fecha_incorporacion) AS mes_inicio
	FROM platzi.alumnos
) AS year_alumnos
WHERE annio_inicio = 2018 AND mes_inicio = 5;

Para SQL Server

-- METODO 3
-- FECHA FILTRO CON SUBCONSULTA
USE [platzi]
SELECT *
FROM
(
	SELECT *, YEAR(fecha_incorporacion) AS anio
	FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio = 2019


/*
FILTRAR MAYO DE 2018
*/

-- METODO 1
USE [platzi]
SELECT *
FROM 
(
	SELECT *, YEAR(fecha_incorporacion) AS anio, MONTH(fecha_incorporacion) AS mes
	FROM platzi.alumnos
) AS alumnos_con_anio_mes
WHERE anio=2018 AND mes=5
GO

-- METODO 2
USE [platzi]
SELECT *
FROM platzi.alumnos
WHERE CONVERT(CHAR(10), fecha_incorporacion,126) LIKE '2018-05%'
GO
Mi solución ```txt select *, extract(year from fecha_incorporacion) as Año, extract(month from fecha_incorporacion) as Mes from platzi.alumnos where (extract(year from fecha_incorporacion)) = 2018 and (extract(month from fecha_incorporacion)) = 5 ```
\--opcion 1 SELECT \* FROM platzi.alumnos WHERE fecha\_incorporacion BETWEEN '2019-05-01' AND '2019-05-31'; \--opcion 2 SELECT \* FROM ( SELECT DATE\_PART('year', fecha\_incorporacion) AS año, DATE\_PART('month', fecha\_incorporacion) AS mes, \* FROM platzi.alumnos ) AS año\_mes WHERE año = '2019' AND mes = '05'; \--opcion 3 SELECT \* FROM platzi.alumnos WHERE DATE\_PART('year', fecha\_incorporacion) = '2019' AND DATE\_PART('month', fecha\_incorporacion) = '05';
```js select * from (select *, date_part('Year', a.fecha_incorporacion ) as anio, date_part('Month', a.fecha_incorporacion) as mes from alumnos a ) where anio = 2020 and mes = 5 ```
```js select * from (select *, date_part('Year', a.fecha_incorporacion ) as anio, date_part('Month', a.fecha_incorporacion) as mes from alumnos a ) where anio = 2020 and mes = 5 ```select \* from (select \*, date\_part('Year', *a*.fecha\_incorporacion ) as *anio*, date\_part('Month', *a*.fecha\_incorporacion) as *mes* from alumnos *a* ) where *anio* = 2020 and *mes* = 5
```js -- Metodo 1 SELECT * FROM alumnos WHERE EXTRACT(YEAR FROM fecha_incorporacion) = 2018 AND EXTRACT(MONTH FROM fecha_incorporacion) = 5; -- Metodo 2 SELECT * FROM alumnos WHERE DATE_TRUNC('month', fecha_incorporacion) = '2018-05-01'; -- Metodo 3 SELECT * FROM alumnos WHERE fecha_incorporacion BETWEEN '2018-05-01' AND '2018-05-31'; -- Metodo 4 WITH alumnos_with_date_incorporation AS ( SELECT EXTRACT(YEAR FROM fecha_incorporacion) AS year, EXTRACT(MONTH FROM fecha_incorporacion) AS month, * FROM alumnos ) SELECT * FROM alumnos_with_date_incorporation WHERE year = 2018 AND month = 5 ```-- Metodo 1 SELECT \* FROM alumnos WHERE EXTRACT(YEAR FROM fecha\_incorporacion) = 2018 AND EXTRACT(MONTH FROM fecha\_incorporacion) = 5; \-- Metodo 2 SELECT \* FROM alumnos WHERE DATE\_TRUNC('month', fecha\_incorporacion) = '2018-05-01'; \-- Metodo 3 SELECT \* FROM alumnos WHERE fecha\_incorporacion BETWEEN '2018-05-01' AND '2018-05-31'; \-- Metodo 4 WITH alumnos\_with\_date\_incorporation AS ( SELECT EXTRACT(YEAR FROM fecha\_incorporacion) AS year, EXTRACT(MONTH FROM fecha\_incorporacion) AS month, \* FROM alumnos ) SELECT \* FROM alumnos\_with\_date\_incorporation WHERE year = 2018 AND month = 5
Una solución en MYSQL select \* from platzi\_sql\_practice.alumnos where date(fecha\_incorporacion) >= '2018-05-01' and date(fecha\_incorporacion) <= '2018-05-31';
```ts SELECT * FROM platzi.alumnos WHERE (EXTRACT (YEAR FROM fecha_incorporacion)) = 2018 AND (DATE_PART ('MONTH', fecha_incorporacion)) = 5; --Otra forma: SELECT * FROM( SELECT EXTRACT (YEAR FROM fecha_incorporacion) as "Año", DATE_PART('MONTH', fecha_incorporacion) as "Mes", * FROM platzi.alumnos) as tabla2 WHERE "Año" = 2018 AND "Mes" = 5; ```
```python SELECT * FROM platzi.alumnos WHERE (EXTRACT (YEAR FROM fecha_incorporacion)) = 2018 AND (DATE_PART ('MONTH', fecha_incorporacion)) = 5; --Otra forma: SELECT * FROM( SELECT EXTRACT (YEAR FROM fecha_incorporacion) as "Año", DATE_PART('MONTH', fecha_incorporacion) as "Mes", * FROM platzi.alumnos) as tabla2 WHERE "Año" = 2018 AND "Mes" = 5; ```
```html SELECT * FROM platzi.alumnos WHERE (EXTRACT (YEAR FROM fecha_incorporacion)) = 2018 AND (DATE_PART ('MONTH', fecha_incorporacion)) = 5; --Otra forma: SELECT * FROM( SELECT EXTRACT (YEAR FROM fecha_incorporacion) as "Año", DATE_PART('MONTH', fecha_incorporacion) as "Mes", * FROM platzi.alumnos) as tabla2 WHERE "Año" = 2018 AND "Mes" = 5; ```
```java SELECT * FROM platzi.alumnos WHERE (EXTRACT (YEAR FROM fecha_incorporacion)) = 2018 AND (DATE_PART ('MONTH', fecha_incorporacion)) = 5; --Otra forma: SELECT * FROM( SELECT EXTRACT (YEAR FROM fecha_incorporacion) as "Año", DATE_PART('MONTH', fecha_incorporacion) as "Mes", * FROM platzi.alumnos) as tabla2 WHERE "Año" = 2018 AND "Mes" = 5; ```
```c# SELECT * FROM platzi.alumnos WHERE (EXTRACT (YEAR FROM fecha_incorporacion)) = 2018 AND (DATE_PART ('MONTH', fecha_incorporacion)) = 5; --Otra forma: SELECT * FROM( SELECT EXTRACT (YEAR FROM fecha_incorporacion) as "Año", DATE_PART('MONTH', fecha_incorporacion) as "Mes", * FROM platzi.alumnos) as tabla2 WHERE "Año" = 2018 AND "Mes" = 5; ```
¿Sabías que...? La función `EXTRACT` tiende a ser más utilizada en SQL estándar mientras que `DATE_PART` es específica de PostgreSQL y aparte otra diferencia entre las dos es que esta última devuelve el resultado como tipo de dato `float`
Misma estructura diferente función. \#1 SELECT \* FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha\_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha\_incorporacion)) = 05 \#2 SELECT \* FROM platzi.alumnos WHERE DATE\_PART('YEAR',fecha\_incorporacion) = 2018 AND DATE\_PART('MONTH',fecha\_incorporacion) = 05;
Hay diferentes forma de obtenerlo, esta es una de ellas: ![](https://static.platzi.com/media/user_upload/image-0fc65a96-b9c9-431e-a2f6-c9294798b380.jpg)
SELECT \* FROM platzi.alumnos WHERE EXTRACT(YEAR FROM fecha\_incorporacion)= 2018 AND EXTRACT(MONTH FROM fecha\_incorporacion) = 5;
Hola mi solucion al reto select \* from ( select \* , date\_part('year', fecha\_incorporacion) as *anio\_incorporacion*, date\_part('month', fecha\_incorporacion) as *mes\_incorporacion* from platzi.alumnos ) as *alumnos\_con\_anio\_mes* where (*anio\_incorporacion*) = 2020 and *mes\_incorporacion* = 5 ;
Esta es mi solucion ```js SELECT * FROM (SELECT *, DATE_PART('YEAR', fecha_incorporacion) as anio_incorporacion, DATE_PART('MONTH', fecha_incorporacion) as mes_incorporacion FROM platzi.alumnos ) as alumnos_con_fecha WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```
```js SELECT * FROM (SELECT *, DATE_PART('YEAR', fecha_incorporacion) as anio_incorporacion, DATE_PART('MONTH', fecha_incorporacion) as mes_incorporacion FROM platzi.alumnos ) as alumnos_con_fecha WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```SELECT \* FROM (SELECT \*, DATE\_PART('YEAR', fecha\_incorporacion) as anio\_incorporacion, DATE\_PART('MONTH', fecha\_incorporacion) as mes\_incorporacion FROM platzi.alumnos ) as alumnos\_con\_fecha WHERE anio\_incorporacion = 2018 AND mes\_incorporacion = 5;
SELECT \* FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha\_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha\_incorporacion)) = 05;
SELECT \*,YEAR(*fecha*) AS *anio\_fecha* FROM *otra\_tabla* where serial=5548;
Solución del Reto ```js SELECT DATE_PART('hours', fecha_incorporacion) AS hora_incorporacion, DATE_PART('min', fecha_incorporacion) AS minutos_incorporacion, DATE_PART('seconds', fecha_incorporacion) AS segundos_incorporacion FROM PLATZI.ALUMNOS; ```SELECT DATE\_PART('hours', fecha\_incorporacion) AS hora\_incorporacion, DATE\_PART('min', fecha\_incorporacion) AS minutos\_incorporacion, DATE\_PART('seconds', fecha\_incorporacion) AS segundos\_incorporacion FROM PLATZI.ALUMNOS;
otra forma: `SELECT *` `FROM platzi.alumnos` `WHERE fecha_incorporacion BETWEEN DATE('2018-05-01') AND DATE('2018-06-01');`

Solucion del reto

select *
from (
	select *,DATEPART(year, fecha_incorporacion) as anio_incorporation,
			DATEPART(month, fecha_incorporacion) as mes_incorporation
	from platzi.alumnos
) as alumnos_anio_mes
where anio_incorporation = 2018 and mes_incorporation = 5
Por acá dejo mi solución: `SELECT *` ` ``FROM` ` ``(SELECT *,` ` `` ``LEFT(CAST(fecha_incorporacion AS TEXT) ,7) AS anio_mes` `FROM platzi.alumnos) AS alumnos_anio_mes` `WHERE anio_mes like '2018-05';`
**Opción 1 :** SELECT \* FROM platzi.alumnos WHERE (DATE\_PART ('YEAR', fecha\_incorporacion) = 2018 and DATE\_PART ('MONTH', fecha\_incorporacion)=05 ) **Opción 2 :** SELECT \* FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha\_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha\_incorporacion)) = 05; **Opción 3 :** SELECT \* FROM (SELECT \*, DATE\_PART ('YEAR', fecha\_incorporacion) AS anio\_incorporacion, DATE\_PART ('MONTH', fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos) AS alumnos\_con\_anio WHERE anio\_incorporacion=2020 and mes\_incorporacion = 05
**Opción 1 :** SELECT \* FROM platzi.alumnos WHERE (DATE\_PART ('YEAR', fecha\_incorporacion) = 2018 and DATE\_PART ('MONTH', fecha\_incorporacion)=05 ) **Opción 2 :** SELECT \* FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha\_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha\_incorporacion)) = 05; **Opción 3 :** SELECT \* FROM (SELECT \*, DATE\_PART ('YEAR', fecha\_incorporacion) AS anio\_incorporacion, DATE\_PART ('MONTH', fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos) AS alumnos\_con\_anio WHERE anio\_incorporacion=2020 and mes\_incorporacion = 05
![](https://static.platzi.com/media/user_upload/image-90970bcb-c73d-477c-9c0a-b9a3561108ef.jpg)
```js SELECT * FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5 ```SELECT \* FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha\_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha\_incorporacion)) = 5
`SELECT * FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5` `SELECT * FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018 AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5`
```txt SELECT * FROM ( SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion, DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion FROM platzi.alumnos ) AS alumnos_con_anio_mes WHERE anio_incorporacion = 2018 AND mes_incorporacion=5; ```
Mi solucion al reto: ![](https://static.platzi.com/media/user_upload/Screenshot%202024-04-18%2011.58.06-5e769431-7302-41d3-9618-224cafab7518.jpg)
```js SELECT * FROM ( SELECT *, EXTRACT(YEAR FROM fecha_incorporacion) AS anio_incorporacion, EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion FROM platzi.alumnos ) AS alumnos_con_anios WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```
```js SELECT * FROM platzi.alumnos WHERE (EXTRACT(YEAR FROM fecha_incorporacion)=2018 AND EXTRACT(MONTH FROM fecha_incorporacion)=5); ```

Siguiendo el curso, comparto solucion:

SELECT *
FROM (
  SELECT *,
  DATE_PART('YEAR', fecha_incorporacion) AS anio_incorp,
  DATE_PART('MONTH', fecha_incorporacion) AS month_incorp
  FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorp = 2018 AND month_incorp = 05;

💪

Comparto mi código, un poco extenso pero salió con esfuerzo `SELECT *` `FROM (` `SELECT *,` `DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,` `DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion` `FROM platzi.alumnos` `) AS alumnos_anio_mes_incorporacion` `WHERE anio_incorporacion = 2018` `AND` `mes_incorporacion = 05;`
Reto:![](https://static.platzi.com/media/user_upload/image-2384d8eb-8535-4d1a-8ff1-0144239566bc.jpg)
```js SELECT * FROM( SELECT *, DATE_PART('YEAR',fecha_incorporacion) AS anio_incorporacion, DATE_PART('MONTH',fecha_incorporacion) AS mes_incorporacion FROM platzi.alumnos )AS alumnos_anios WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```

Mi solución:

SELECT *
FROM platzi.alumnos
WHERE DATE_PART('YEAR', fecha_incorporacion) = 2018
AND DATE_PART('MONTH', fecha_incorporacion) = 5;
`SELECT DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,` `DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,` `DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion5` `FROM platzi.alumnos;` `SELECT EXTRACT (HOUR FROM fecha_incorporacion) AS hora_incorporacion,` `EXTRACT (MINUTE FROM fecha_incorporacion) AS minuto_incorporacion,` `EXTRACT (SECOND FROM fecha_incorporacion) AS segundo_incorporacion` `FROM platzi.alumnos;`
Esta fue mi solución, espero que les guste :D ```js SELECT * FROM (SELECT nombre, EXTRACT(YEAR FROM fecha_incorporacion)AS anio_incorporacion, EXTRACT(MONTH FROM fecha_incorporacion)AS mes_incorporacion FROM platzi.alumnos) AS alumnos_confecha WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```SELECT \* FROM (SELECT nombre, EXTRACT(YEAR FROM fecha\_incorporacion)AS anio\_incorporacion, EXTRACT(MONTH FROM fecha\_incorporacion)AS mes\_incorporacion FROM platzi.alumnos) AS alumnos\_confecha WHERE anio\_incorporacion = 2018 AND mes\_incorporacion = 5;

Solucion

SELECT *
FROM platzi.alumnos
WHERE ( extract (year from  fecha_incorporacion )) = 2019  and (extract (month from  fecha_incorporacion )) = 05

Tambien lo quise ordenar para ver quien fue el primero segun la hora:

SELECT *
FROM platzi.alumnos
WHERE ( extract (year from  fecha_incorporacion )) = 2019  and (extract (month from  fecha_incorporacion )) = 05
ORDER BY ( extract (hour from  fecha_incorporacion )) asc;
SELECT \* FROM platzi.alumnos WHERE (EXTRACT (Year FROM fecha\_incorporacion))=2018 and (DATE\_PART('Month', fecha\_incorporacion))=05
SELECT *
FROM platzi.alumnos 
WHERE DATE_PART('YEAR',fecha_incorporacion) = 2018 AND
DATE_PART('month',fecha_incorporacion) = 5;
```css SELECT * FROM (SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion, DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion FROM platzi.alumnos ) AS alumnos_con_anio_y_mes WHERE anio_incorporacion = 2018 AND mes_incorporacion=5; ```
`SELECT *` `FROM (` ` ``SELECT *,` ` ``DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,` ` ``DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion` ` ``FROM platzi.alumnos` `) AS alumnos_ingreso` `WHERE anio_incorporacion = 2018` `AND mes_incorporacion = 05;`
solución `SELECT id, nombre, apellido, anio_incorporacion, mes_incorporacion` `FROM(` ` ``SELECT *,` ` ``DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,` ` ``DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion` ` ``FROM platzi.alumnos` `) AS alumnos_con_anio_mes` WHERE anio\_incorporacion=2018 AND mes\_incorporacion=05;
como cargo mis diplomas de platzi a linkdin
\- Filtro DATE\_PART -- SELECT \* FROM platzi.alumnos WHERE DATE\_PART('YEAR', fecha\_incorporacion) = 2019 AND DATE\_PART('MONTH', fecha\_incorporacion) = 5 ORDER BY fecha\_incorporacion ASC; \-- Filtro subquery DATE\_PART -- SELECT \* FROM ( SELECT \*, DATE\_PART('YEAR', fecha\_incorporacion) AS anio\_incorporacion, DATE\_PART('MONTH', fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos ) AS alumnos\_con\_anio\_mes WHERE anio\_incorporacion = 2019 AND mes\_incorporacion = 5 ORDER BY fecha\_incorporacion ASC;

Para seleccionar registros por año en una tabla, generalmente puedes utilizar la función EXTRACT para obtener el año de una columna de tipo fecha. Sin embargo, la disponibilidad de esta función puede depender del sistema de gestión de bases de datos específico que estés utilizando

PostgreSQL
En PostgreSQL, puedes usar la función EXTRACT de la siguiente manera:

SELECT DISTINCT EXTRACT(YEAR FROM fecha_incorporacion) AS anio
FROM platzi.alumnos;

  • Esta consulta te dará una lista de años únicos presentes en la columna fecha_incorporacion de la tabla alumnos.
MySQL
En MySQL, la función YEAR puede ser utilizada

SELECT DISTINCT YEAR(fecha_incorporacion) AS anio
FROM platzi.alumnos;
SQL Server
En SQL Server, también puedes utilizar la función YEAR:

SELECT DISTINCT YEAR(fecha_incorporacion) AS anio
FROM platzi.alumnos;

  • Estas consultas te darán una lista de años únicos presentes en la columna fecha_incorporacion de la tabla alumnos. Utiliza la sintaxis que corresponda a tu sistema de gestión de bases de datos.
SELECT
  EXTRACT(HOUR FROM fecha_incorporacion) AS horas,
  EXTRACT(MINUTE FROM fecha_incorporacion) AS minutos,
  EXTRACT(SECOND FROM fecha_incorporacion) AS segundos
FROM platzi.alumnos;

EXTRACT(HOUR FROM fecha_incorporacion) obtiene las horas de la columna fecha_incorporacion.
EXTRACT(MINUTE FROM fecha_incorporacion) obtiene los minutos.
EXTRACT(SECOND FROM fecha_incorporacion) obtiene los segundos.
SELECT *
FROM (
	SELECT *,DATE_PART('YEAR', fecha_incorporacion)AS anio_incorporacion,
	DATE_PART('Month', fecha_incorporacion)AS mes_incorporacion
	from platzi.alumnos	
)as alumnos_con_anioymes

where anio_incorporacion=2020 and mes_incorporacion=5; 
```js select * from ( select *, date_part('year', fecha_incorporacion) as anio, date_part('month', fecha_incorporacion) as mes from platzi.alumnos ) as al_anio where al_anio.anio = 2018 and al_anio.mes = 5; select * from platzi.alumnos where date_part('YEAR', fecha_incorporacion) = 2018 and date_part('month', fecha_incorporacion) = 5; ```select \* from ( select \*, date\_part('year', fecha\_incorporacion) as anio, date\_part('month', fecha\_incorporacion) as mes from platzi.alumnos ) as al\_anio where al\_anio.anio = 2018 and al\_anio.mes = 5; select \* from platzi.alumnos where date\_part('YEAR', fecha\_incorporacion) = 2018 and date\_part('month', fecha\_incorporacion) = 5;
ES MAS OPTIMO `select extract(hour from fecha_incorporacion) AS hora_incorporation,` `extract(minute from fecha_incorporacion) AS minute_incorporation,` `extract(second from fecha_incorporacion) AS seonc_incorporation` `FROM platzi.alumnos;`
`SELECT *` `FROM platzi.alumnos` `WHERE((EXTRACT(YEAR FROM fecha_incorporacion)) = 2018` ` `` AND EXTRACT(MONTH FROM fecha_incorporacion) = 05);`
Dejo mi solución al reto de las 3 formas propuestas `SELECT *` `FROM platzi.alumnos` `WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018` `AND (EXTRACT(MONTH FROM fecha_incorporacion)) = 5;` `SELECT *` `FROM platzi.alumnos` `WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018` `AND (DATE_PART('MONTH', fecha_incorporacion)) = 5;` `SELECT *` `FROM (` ` ``SELECT *,` ` `` ``DATE_PART('YEAR', fecha_incorporacion) AS anio_incorp,` ` `` ``DATE_PART('MONTH', fecha_incorporacion) AS mes_incorp` ` ``FROM platzi.alumnos) AS alumnos_con_anio` ` ``WHERE anio_incorp = 2018 AND mes_incorp = 5;`
\--ALUMNOS QUE SE INCORPORARON EN MAYO DEL 2018 SELECT\* FROM ( SELECT \*, DATE\_PART('MONTH',fecha\_incorporacion) AS mes\_incorporacion, DATE\_PART('YEAR',fecha\_incorporacion) AS anio\_incorporacion FROM PLATZI.alumnos ) as alumnos\_con\_fecha WHERE mes\_incorporacion=5 and anio\_incorporacion=2018
```js --ALUMNOS QUE SE INCORPORARON EN MAYO DEL 2018 SELECT* FROM ( SELECT *, DATE_PART('MONTH',fecha_incorporacion) AS mes_incorporacion, DATE_PART('YEAR',fecha_incorporacion) AS anio_incorporacion FROM PLATZI.alumnos ) as alumnos_con_fecha WHERE mes_incorporacion=5 and anio_incorporacion=2018 ```--ALUMNOS QUE SE INCORPORARON EN MAYO DEL 2018 SELECT\* FROM ( SELECT \*, DATE\_PART('MONTH',fecha\_incorporacion) AS mes\_incorporacion, DATE\_PART('YEAR',fecha\_incorporacion) AS anio\_incorporacion FROM PLATZI.alumnos ) as alumnos\_con\_fecha WHERE mes\_incorporacion=5 and anio\_incorporacion=2018
-- SQL SERVER
SELECT * FROM alumnos
WHERE YEAR(fecha_incorporacion)=2018 AND
	MONTH(fecha_incorporacion)=05
Mi solucion al reto de los estudiantes del 2019 en el mes de mayo: ```js SELECT * FROM platzi.alumnos WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2019 AND (DATE_PART('MONTH', fecha_incorporacion)) = 5; ```
Mi solucion del reto de la clase pasada: ```js SELECT DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion, DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion, DATE_PART('HOUR', fecha_incorporacion) AS hour_incorporacion FROM platzi.alumnos; ```
Una de mis respuestas es la siguiente, obtuve 30 registros para 2018 y mayo. SELECT \* FROM ( SELECT nombre, apellido, EXTRACT (YEAR FROM fecha\_incorporacion) AS anio\_incorporacion, EXTRACT (MONTH FROM fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos ) AS tabla WHERE anio\_incorporacion = 2018 AND mes\_incorporacion = 5
```js SELECT nombre, apellido, anio_incorporacion, mes_incorporacion FROM( SELECT *, DATE_PART ('YEAR', fecha_incorporacion) AS anio_incorporacion, DATE_PART ('MONTH', fecha_incorporacion) AS mes_incorporacion FROM platzi.alumnos ) AS alumno_y_anio WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5; ```SELECT nombre, apellido, anio\_incorporacion, mes\_incorporacion FROM( SELECT \*, DATE\_PART ('YEAR', fecha\_incorporacion) AS anio\_incorporacion, DATE\_PART ('MONTH', fecha\_incorporacion) AS mes\_incorporacion FROM platzi.alumnos ) AS alumno\_y\_anio WHERE anio\_incorporacion = 2018 AND mes\_incorporacion = 5;
```txt select * from platzi.alumnos where (extract (YEAR FROM fecha_incorporacion)) = 2018 and (extract (MONTH FROM fecha_incorporacion)) = 5; select * from platzi.alumnos where (DATE_PART('YEAR',fecha_incorporacion))=2018 AND (DATE_PART('MONTH',fecha_incorporacion))=5; ```
```js -- Reto, Extraer los alumnos que se incorporaron en mayo del 2018 SELECT * FROM ( SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS ANIO_INCOR, DATE_PART('MONTH', fecha_incorporacion) AS MES_INCOR FROM platzi.alumnos ) AS alumnos_incorporados WHERE ANIO_INCOR = 2018 AND MES_INCOR = 5; ```
```js -- Reto, Extraer los alumnos que se incorporaron en mayo del 2018 SELECT * FROM ( SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS ANIO_INCOR, DATE_PART('MONTH', fecha_incorporacion) AS MES_INCOR FROM platzi.alumnos ) AS alumnos_incorporados WHERE ANIO_INCOR = 2018 AND MES_INCOR = 5; ```-- Reto, Extraer los alumnos que se incorporaron en mayo del 2018 SELECT \* FROM ( SELECT \*, DATE\_PART('YEAR', fecha\_incorporacion) AS ANIO\_INCOR, DATE\_PART('MONTH', fecha\_incorporacion) AS MES\_INCOR FROM platzi.alumnos ) AS alumnos\_incorporados WHERE ANIO\_INCOR = 2018 AND MES\_INCOR = 5;

SELECT *
FROM (
SELECT *,
DATE_PART(‘YEAR’, fecha_incorporacion) AS anio_incorporacion,
DATE_PART(‘MONTH’, fecha_incorporacion) AS mes_incorporacion
FROM platzi.alumnos
) AS alumnos_mes_anio
WHERE anio_incorporacion = 2018
AND mes_incorporacion = 05;

– reto de tarea sacar las horas mysql
SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hora_de_incorporacion,
EXTRACT(MINUTE FROM fecha_incorporacion) AS minuto_de_incorporacion,
EXTRACT(SECOND FROM fecha_incorporacion) AS segundo_de_incorporacion
FROM platzi.alumnos;

– ejercicio en postgresSQL
SELECT DATE_PART(‘HOUR’, fecha_incorporacion) AS hora_de_incorporacion,
DATE_PART(‘MINUTE’, fecha_incorporacion) AS minuto_de_incorporacion,
DATE_PART(‘SECOND’, fecha_incorporacion) AS segundo_de_incorporacion

FROM platzi.alumnos;

select date_part( 'year', fecha_incorporacion) as anio_incorporacion,
        date_part('month', fecha_incorporacion) as mes_incorporacion,
        date_part('day', fecha_incorporacion) as dia_incorporacion
from alumnos where extract (year from fecha_incorporacion) = 2020 order by anio_incorporacion desc; 

select * from(
select *,date_part('year',fecha_incorporacion) as anio_incorporacion,
	date_part('month',fecha_incorporacion) as mes_incorporacion
from platzi.alumnos)
as alumnos_con_anio
where anio_incorporacion = 2018
and mes_incorporacion = 5;```

Mi solucion al reto:

-- Alumnos que se incorporaron en mayo de 2018.
SELECT * --1
FROM platzi.alumnos
WHERE EXTRACT(YEAR FROM fecha_incorporacion) = 2020
AND DATE_PART('MONTH', fecha_incorporacion) = 5;



SELECT * --2
FROM (
    SELECT *, DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
    EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion
    FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion > 2018 AND mes_incorporacion = 5;```

Hola, por acá dejo mi código solución

SELECT * 
FROM (
	SELECT *,
	EXTRACT(YEAR FROM fecha_incorporacion) AS año_incorporacion,
	EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_fecha
WHERE año_incorporacion = 2018 AND mes_incorporacion = 5
ORDER BY fecha_incorporacion ASC;

Mi humilde solución :

SELECT *
FROM (
SELECT * ,
DATE_PART(‘MONTH’,fecha_incorporacion)AS mes_incorporacion,
DATE_PART(‘YEAR’,fecha_incorporacion) AS anio_incorporacion
FROM platzi.alumnos
)AS año_mes_incorpacion
WHERE mes_incorporacion = '05’
AND anio_incorporacion = ‘2018’ ;

Aporte.

select * 
from
alumnos
where (extract(year from fecha_incorporacion))  = 2018  
	and (extract(month from fecha_incorporacion)) = 05

Mi aporte

--V1

   SELECT * 
from (
select *,date_part ('year',fecha_incorporacion)as año
,date_part('month',fecha_incorporacion) as mes from platzi.alumnos
)as alumnos
where año = 2018 and mes = 5

--V2

select * 
from platzi.alumnos
where EXTRACT(YEAR FROM fecha_incorporacion) = 2018 AND EXTRACT(MONTH FROM fecha_incorporacion) = 5;

Solución SQL Server

select *
from platzi.alumnos
where month(fecha_incorporacion)=05 and YEAR(fecha_incorporacion) = 2018

La solucion al reto, usando las 2 clausulas EXTRACT, DATE_PART y con subconsulta es:
.
Con EXTRACT

SELECT *
FROM platzi.alumnos
WHERE (EXTRACT(YEAR FROM fecha_incorporacion)) = 2018
	  AND (EXTRACT (MONTH FROM fecha_incorporacion)) = 5;

con DATE_PART

SELECT *
FROM platzi.alumnos
WHERE (DATE_PART('YEAR', fecha_incorporacion)) = 2018
	  AND (DATE_PART('MONTH', fecha_incorporacion)) = 5;

Y con subconsulta

SELECT *
FROM (
	SELECT *,
			DATE_PART('YEAR', fecha_incorporacion) AS anio_incorporacion,
			DATE_PART('MONTH', fecha_incorporacion) AS mes_incorporacion
	FROM platzi.alumnos
) AS alumnos_con_anio
WHERE anio_incorporacion = 2018 AND mes_incorporacion = 5;

SELECT *
FROM platzi.alumnos
WHERE DATE_PART(‘YEAR’,fecha_incorporacion)=2018
AND DATE_PART(‘MONTH’,fecha_incorporacion)=03;

SELECT nombre, apellido, fecha_incorporacion 
FROM platzi.alumnos
WHERE 
DATE_PART('YEAR', fecha_incorporacion) = 2018 
AND
DATE_PART('MONTH', fecha_incorporacion) = 05
;

SELECT nombre, apellido, fecha_incorporacion 
FROM platzi.alumnos
WHERE 
EXTRACT('YEAR' FROM fecha_incorporacion) = 2018 
AND
EXTRACT('MONTH' FROM fecha_incorporacion) = 05
;