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

En mis tiempos

13/29
Recursos

Aportes 358

Preguntas 12

Ordenar por:

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

o inicia sesión.

Mi solución

-- Extract
SELECT 	EXTRACT(YEAR FROM fecha_incorporacion) AS anio_incorporacion,
		EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion,
		EXTRACT(DAY FROM fecha_incorporacion) AS dia_incorporacion,
		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
;
-- Date Part
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,
		DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
		DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
		DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos
;

En mysql se puede extraer directamente el año utilizando “YEAR(campo_fecha)” que es a lo que normalmente estamos mas acostumbrados los que programamos.

QUE GRANDE QUE SOS ISRAELLLLLLL

Me propuse un reto de contar el número de estudiantes que se registran en cada fecha que existe en la columna de fecha_incorporacion este fue el resultado + el query lo realizé usando funciones ventana:

-- Hora minuto y segundo extraido de la fecha incorporación
SELECT
       HOUR(fecha_incorporacion) hora,
       MINUTE(fecha_incorporacion) minutos,
       SECOND(fecha_incorporacion) segundos 
       from alumnos;

Para SQL Server:


-- METODO 3
-- MOSTRAR FECHAS CON DATEPART
USE [platzi]
SELECT
	DATEPART(YYYY,fecha_incorporacion) AS anio_incorporacion,
	DATEPART(MM,fecha_incorporacion) AS num_mes,
	DATEPART(DD,fecha_incorporacion) AS num_dia,
	DATEPART(HH,fecha_incorporacion) AS hora_1,
	DATEPART([hour], fecha_incorporacion) AS hora_2,
	DATEPART(MI,fecha_incorporacion) AS minuto,
	DATEPART(SS,fecha_incorporacion) AS segundo
FROM platzi.alumnos
GO


-- METODO 4
-- MOSTRAR FECHAS CON CONVERT
USE [platzi]
SELECT
	YEAR(fecha_incorporacion) AS anio_incorporacion,
	MONTH(fecha_incorporacion) AS num_mes,
	DAY(fecha_incorporacion) AS num_dia,
	CONVERT(char(8),fecha_incorporacion,108) AS tiempo,
	CONVERT(CHAR(10),fecha_incorporacion,103) AS formato_fecha
FROM platzi.alumnos
GO


-- METODO 5
-- MOSTRAR FECHAS CON NOMBRES
USE [platzi]
SELECT
	YEAR(fecha_incorporacion) AS anio_incorporacion,
	DATENAME(MONTH,fecha_incorporacion) AS nombre_mes,
	DATENAME(WEEKDAY,fecha_incorporacion) AS nombre_dia
FROM platzi.alumnos
GO


Lo realize de esta manera ya que el date_part no funciona en mysql workbench😆

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hour_incorporacion,
	EXTRACT(MINUTE FROM fecha_incorporacion) AS minute_incorporacion,
    EXTRACT(SECOND FROM fecha_incorporacion) AS second_incorporacion
FROM platzi.alumnos; 

Me parecio muy largo la sentencia, intente unirlas pero marca error.

Comparto las soluciones

SELECT *
FROM platzi.alumnos
WHERE id IN (
	SELECT id
	FROM platzi.alumnos
	WHERE tutor_id <> 30
)

o también

SELECT *
FROM platzi.alumnos
WHERE id not IN (
	SELECT id
	FROM platzi.alumnos
	WHERE tutor_id = 30
)

Saludos

Aporte:

Mas alla del reto un dato curioso es que ademas de meses podes agrupar por semestres, TRIMESTRES y otras medias. Facilitando muchisimo ciertos análisis de negocio.

select extract (quarter from fecha_incorporacion),*
from universidad.alumnos;

select DATE_PART('quarter', fecha_incorporacion), * 
from universidad.alumnos; 

En SQL SEVER 2019

SELECT
YEAR(fecha_incorporacion) AS AÑO,
MONTH(fecha_incorporacion) as MES,
DAY(fecha_incorporacion) AS DIA
FROM ALUMNOS

2020 5 17
2018 9 1
2020 7 18
2018 2 5
2020 8 4
2019 6 5
2020 8 31
2020 8 17
2020 4 8
2019 3 28
2019 5 31

Mi solución.

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hora_incorporacion,
	EXTRACT(MINUTE FROM fecha_incorporacion) AS minuto_incorporacion,
	EXTRACT(SECOND FROM fecha_incorporacion) AS segundos_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
	DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
	DATE_PART('SECOND', fecha_incorporacion) AS segundos_incorporacion
FROM platzi.alumnos;

con DATE PART

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,
DATE_PART ('HOUR', fecha_incorporacion)AS hora_incorporacion,
DATE_PART ('MINUTE', fecha_incorporacion)AS minuto_incorporacion,
DATE_PART ('SECOND', fecha_incorporacion)AS segundo_incorporacion
FROM platzi.alumnos

Unpopular o popular opinion? Me gusta más la versión anterior de platzi 😄

EXTRACT() : numeric
DATE_PART(): double precision

Solucion mas facil que el NOT IN
Es;
!=

Comparto varias maneras de decorar la salida con formatos de fecha:

SELECT fecha_incorporacion, EXTRACT(YEAR FROM  fecha_incorporacion) AS "AÑO", 
	TO_CHAR(fecha_incorporacion, 'Month dd, YYYY') as "Date1",
	TO_CHAR(fecha_incorporacion, 'fmMonth dd, YYYY') as "Date2",
	TO_CHAR(fecha_incorporacion, 'fmMonth ddth, YYYY') as "Date3",
	TO_CHAR(fecha_incorporacion, 'fmDay ddth Mon, YYYY') as "Date4"
FROM platzi.alumnos;

Tal que tendria este formato:
fecha_incorporacion: “2020-05-17 22:49:29”
AÑO: 2020
Date1: “May 17, 2020”
Date2: “May 17, 2020”
Date3: “May 17th, 2020”
Date 4: “Sunday 17th May, 2020”

… Y si necesitas el año pero con la estructura de fecha pueden usar:

select date_trunc('year', fecha_incorporacion)::date AS anio,
	   date_trunc('month',fecha_incorporacion )::date AS mes,
	   date_trunc('day',fecha_incorporacion )::date as dia
from platzi.alumnos
order by 1 ASC, 2 DESC

Realmente feliz y motivado con esta clase, parte de lo básico y realiza consultas que se pueden seguir, además, para la tarea o reto no se necesitan otro tipo de funciones sino las que se explicaron en teoría y en la misma clase. Considero que este tipo de ejercicios si son muy productivos para este nivel. Gracias team platzi

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hora_inicio,
		EXTRACT(MIN FROM fecha_incorporacion) AS min_inicio,
		EXTRACT(SECOND FROM fecha_incorporacion) AS seg_inicio
FROM platzi.alumnos;

Y la solución de tipo II

SELECT DATE_PART ('HOUR',fecha_incorporacion) AS hora_inicio, 
		DATE_PART ('MIN',fecha_incorporacion) AS min_inicio, 
		DATE_PART ('SECOND',fecha_incorporacion) AS seg_inicio 
FROM platzi.alumnos;

Con la funcion EXTRACT() realice el ejercicio de tomar la hora, minuto y segundo de la fecha_incorporacion:

Otra forma de extraerlo:

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;

SELECT DATE_PART ('YEAR', fecha_incorporacion) AS anio_ingreso,
		DATE_PART ('MONTH', fecha_incorporacion) AS mes_ingreso,
		DATE_PART ('DAY', fecha_incorporacion) AS día_ingreso,
		DATE_PART ('HOUR', fecha_incorporacion) AS hora_ingreso,
		DATE_PART ('MINUTE', fecha_incorporacion) AS minuto_ingreso,
		DATE_PART ('SECOND', fecha_incorporacion) AS segundo_ingreso

FROM platzi.alumnos;

Solución al reto.

SELECT DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
	DATE_PART('MINUTE', fecha_incorporacion) AS minutes_incorporacion,
	DATE_PART('SECOND', fecha_incorporacion) AS seconds_incorporacion
FROM platzi.alumnos; 

Mis respuestas

SELECT 	DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
		DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
		DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion
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

```txt 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, DATE_PART('HOUR',fecha_incorporacion) AS hora_incorporacion, DATE_PART('MINUTE',fecha_incorporacion) AS minutos_incorporacion, DATE_PART('SECOND',fecha_incorporacion) AS segundos_incorporacion, DATE_PART('MILLISECOND',fecha_incorporacion) AS milisegundos_incorporacion FROM platzi.alumnos; ```
```js --SELECT EXTRACT(UNIT_TIME, FIELD) SELECT EXTRACT(YEAR FROM fecha_incorporacion) AS anio_incorporacion, EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion, EXTRACT(DAY FROM fecha_incorporacion) AS dia_incorporacion, 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; --SELECT DATE_PART('UNIT_TIME', FIELD) 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, DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion, DATE_PART('MINUTE', fecha_incorporacion) AS minute_incorporacion, DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion FROM platzi.alumnos; ```--SELECT EXTRACT(UNIT\_TIME, FIELD) SELECT EXTRACT(YEAR FROM fecha\_incorporacion) AS anio\_incorporacion, EXTRACT(MONTH FROM fecha\_incorporacion) AS mes\_incorporacion, EXTRACT(DAY FROM fecha\_incorporacion) AS dia\_incorporacion, 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; \--SELECT DATE\_PART('UNIT\_TIME', FIELD) 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, DATE\_PART('HOUR', fecha\_incorporacion) AS hora\_incorporacion, DATE\_PART('MINUTE', fecha\_incorporacion) AS minute\_incorporacion, DATE\_PART('SECOND', fecha\_incorporacion) AS segundo\_incorporacion FROM platzi.alumnos;
```js --option 1 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 --option 2 SELECT DATE_PART('HOUR',fecha_incorporacion) AS hora_incorporacion, DATE_PART('MINUTE',fecha_incorporacion)AS minuto_incorporacion, DATE_PART('SECOND',fecha_incorporacion) AS segundo_incorporacion FROM PLATZI.alumnos ```
Mi solución ```python SELECT * FROM platzi.alumnos WHERE id IN( SELECT id FROM platzi.alumnos WHERE tutor_id != 30 ); ```SELECT \* FROM platzi.alumnos WHERE id IN( SELECT id FROM platzi.alumnos WHERE tutor\_id != 30 );
select \* from platzi.alumnos where id in ( select id from platzi.alumnos where tutor\_id != 30 )
Mi solucion del reto de los segundos, minutos y horas: ```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; ```
Mi solucion al reto anterior: ```js SELECT * FROM platzi.alumnos WHERE id NOT IN ( SELECT id FROM platzi.alumnos WHERE tutor_id = 30 ); ```
La segunda forma me queda: SELECT EXTRACT (HOUR FROM fecha\_incorporacion) AS hour\_incorporacion, EXTRACT (MIN FROM fecha\_incorporacion) AS min\_incorporacion, EXTRACT (SEC FROM fecha\_incorporacion) AS sec\_incorporacion FROM platzi.alumnos
```js -- Reto1: Sacar los campos de la hora SELECT fecha_incorporacion, EXTRACT(HOUR FROM fecha_incorporacion), EXTRACT(MINUTE FROM fecha_incorporacion), EXTRACT(SECOND FROM fecha_incorporacion) FROM platzi.alumnos; -- Reto2: Sacar los campos de la hora SELECT fecha_incorporacion, DATE_PART('HOUR', fecha_incorporacion) AS HORA, DATE_PART('MINUTE', fecha_incorporacion) AS MINUTO, DATE_PART('SECOND', fecha_incorporacion) AS SEGUNDO FROM platzi.alumnos; ```-- Reto1: Sacar los campos de la hora SELECT fecha\_incorporacion, EXTRACT(HOUR FROM fecha\_incorporacion), EXTRACT(MINUTE FROM fecha\_incorporacion), EXTRACT(SECOND FROM fecha\_incorporacion) FROM platzi.alumnos; \-- Reto2: Sacar los campos de la hora SELECT fecha\_incorporacion, DATE\_PART('HOUR', fecha\_incorporacion) AS HORA, DATE\_PART('MINUTE', fecha\_incorporacion) AS MINUTO, DATE\_PART('SECOND', fecha\_incorporacion) AS SEGUNDO FROM platzi.alumnos;
SELECT \* FROM platzi.alumnos WHERE id BETWEEN (SELECT (COUNT (id)/2+1) AS cantidad FROM platzi.alumnos ) AND (SELECT COUNT (id) AS cantidad FROM platzi.alumnos); SELECT \* FROM platzi.alumnos WHERE id > (SELECT(COUNT (id)/2) AS cantidad FROM platzi.alumnos);

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hour_incorp,
EXTRACT(MINUTE FROM fecha_incorporacion) AS minute_incorp,
EXTRACT(SECOND FROM fecha_incorporacion) AS second_incorp
FROM platzi.alumnos

/* Manejando datos tipo time*/

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hora_incorporacion 
FROM platzi.alumnos;

SELECT EXTRACT(MINUTE FROM fecha_incorporacion) AS minuto_incorporacion 
FROM platzi.alumnos;

SELECT EXTRACT(SECOND FROM fecha_incorporacion) AS segundo_incorporacion 
FROM platzi.alumnos;

SELECT DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
	   DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
	   DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos
WHERE (DATE_PART('HOUR',fecha_incorporacion) < 20);```

Diferencia (portabilidad):

  • EXTRACT() es parte del estándar SQL
  • DATE_PART() es de PostgreSQL

Mi solucion al reto tanto con EXTRACT y DATE_PART:

-- ¿Qué hora se inscriben mas los alumnos?
SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hrs,COUNT(EXTRACT(HOUR FROM fecha_incorporacion)) as incorporacion
FROM platzi.alumnos
GROUP BY hrs
ORDER BY incorporacion DESC;


-- Reto 1
SELECT EXTRACT(HOURS FROM fecha_incorporacion) AS hora_incorporacion,
EXTRACT(minute FROM fecha_incorporacion) AS minutos_incorporacion,
EXTRACT(second FROM fecha_incorporacion) AS hora_incorporacion
FROM platzi.alumnos;


--Reto 2
SELECT DATE_PART('HOURS', fecha_incorporacion) AS horas_incorporacion,
DATE_PART('minute',fecha_incorporacion) AS minutos_incorporacion,
DATE_PART('second', fecha_incorporacion) AS hora_incorporacion
FROM platzi.alumnos;


select date_part('hour', fecha_incorporacion) as hora, 
	   date_part('minute', fecha_incorporacion) as minuto,
	   date_part('second', fecha_incorporacion) as segundo
from platzi.alumnos;

select extract(hour from fecha_incorporacion) as hora,
	   extract(minute from fecha_incorporacion) as minuto,
	   extract(second from fecha_incorporacion) as segundo
from platzi.alumnos;

Hola, por aca adjunto mi solución.

-- EXTRACT()

SELECT nombre, 
	EXTRACT (YEAR FROM fecha_incorporacion) AS Año_incorporacion,
	EXTRACT (MONTH FROM fecha_incorporacion) AS Mes_incorporacion,
	EXTRACT (DAY FROM fecha_incorporacion) AS Dia_incorporacion,
	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;

-- DATE_PART()

SELECT nombre, 
	DATE_PART('YEAR', fecha_incorporacion) AS Año_incorporacion,
	DATE_PART('MONTH', fecha_incorporacion) AS Mes_incorporacion,
	DATE_PART('DAY', fecha_incorporacion) AS Dia_incorporacion,
	DATE_PART('HOUR', fecha_incorporacion) AS Hora_incorporacion,
	DATE_PART('MINUTE', fecha_incorporacion) AS Minuto_incorporacion,
	DATE_PART('SECOND', fecha_incorporacion) AS Segundo_incorporacion
FROM platzi.alumnos;

Mi solución.

SELECT 	extract(year from fecha_incorporacion) AS anio, 
		extract(month from fecha_incorporacion) AS mes,
        extract(day from fecha_incorporacion) AS día, 
        extract(hour from fecha_incorporacion) AS hora,
        extract(minute from fecha_incorporacion) AS minutos,
        extract(second from fecha_incorporacion) AS segundos,
        extract(microsecond from fecha_incorporacion) AS microseg
FROM alumnos;

No olvidar que cuando usas funciones propias de gestor como
EXTRACT cuando deseas usarlo en el WHERE u otra parte debes llevar consigo la función que te ayuda a obtener el resultado

La solucion al reto con ambas sentencias es:
.

SELECT EXTRACT(YEAR FROM fecha_incorporacion) AS anio_incorporacion,
	   EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion,
	   EXTRACT(DAY FROM fecha_incorporacion) AS dia_incorporacion,
	   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

y la segunda es:

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,
	   DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
	   DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
	   DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos

NOTA: Usando la funcion EXTRACT, los valores de los segundos se muestran con varios decimales, mientras los consultados con DATE_PART, los segundos se muestran como numeros enteros. Se podria usar la funcion ROUND para mostrar los segundos sin decimales.

SELECT DATE_PART(‘HOUR’,fecha_incorporacion) AS hora_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(‘MINUTES’,fecha_incorporacion) AS min_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(‘SECONDS’,fecha_incorporacion) AS seg_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,
DATE_PART('HOURS', fecha_incorporacion) AS hora_incorporacion
FROM platzi.alumnos
ORDER BY DATE_PART('YEAR', fecha_incorporacion) DESC;

asi mas lindo 😃

Me tarda un monton cada query, porque será?

Mi solución con DATE_PART

SELECT DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
	   DATE_PART('MINUTES', fecha_incorporacion) AS min_incorporacion,
	   DATE_PART('SECONDS', fecha_incorporacion) AS seg_incorporacion
FROM platzi.alumnos;

con extract

SELECT EXTRACT (HOUR FROM fecha_incorporacion) AS  hora_incorporacion,
 	   EXTRACT (MINUTE FROM fecha_incorporacion) AS  min_incorporacion,
	   EXTRACT (SECOND FROM fecha_incorporacion) AS seg_incorporacion
FROM platzi.alumnos;
Solución 1:

SELECT EXTRACT (HOUR FROM fecha_incorporacion) AS Hora,
		 EXTRACT (MINUTE FROM fecha_incorporacion) AS Minuto,
		 	EXTRACT (SECOND FROM fecha_incorporacion) AS Segundo
FROM platzi.alumnos;

Solución 2:

SELECT DATE_PART('HOUR', fecha_incorporacion) AS Hora,
		DATE_PART('MINUTE', fecha_incorporacion) AS Minuto,
		DATE_PART('SECOND', fecha_incorporacion) AS Segundo
FROM platzi.alumnos;

Mi solución:

DATE_PART:

select date_part(‘hour’, fecha_incorporacion) as hour_incorporacion,
date_part(‘minute’, fecha_incorporacion) as minute_incorporacion,
date_part(‘second’, fecha_incorporacion) as second_incorporacion
from platzi.alumnos;

EXTRACT:

select extract (hour from fecha_incorporacion) as hour_incorporacion
from platzi.alumnos;

Yo lo hice solo cambiando el = a !=

SELECT *
FROM platzi.alumnos
WHERE id IN (
SELECT id
FROM platzi.alumnos
WHERE tutor_id != 30
);

Mi solución:

SELECT fecha_incorporacion, EXTRACT(HOUR FROM fecha_incorporacion) AS hr_incorporacion,
EXTRACT(MIN FROM fecha_incorporacion) AS min_incorporation,
EXTRACT (SECOND FROM fecha_incorporacion) AS seg_incorporacion
FROM alumnos;

Y:

SELECT fecha_incorporacion,
DATE_PART('HOUR', fecha_incorporacion) AS hr_incorporacion,
DATE_PART('MIN', fecha_incorporacion) AS min_incorporacion,
DATE_PART('SECOND', fecha_incorporacion) AS seg_incorporation
FROM alumnos;

/FECHAS/

SELECT*FROM PLATZI.alumnos

SELECT EXTRACT( YEAR FROM fecha_incorporacion) as anio_incorporacion
FROM PLATZI.alumnos

SELECT DATE_PART('YEAR', fecha_incorporacion) as anio_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,
	   DATE_PART('HOUR',fecha_incorporacion)as hora_incorporacion,
	   DATE_PART('MINUTES',fecha_incorporacion)as minutos_incorporacion,
	   DATE_PART('SECONDS',fecha_incorporacion)as segundos_incorporacion
FROM PLATZI.alumnos

Mi solución

–Con extact
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;

–Con DATE_PART
SELECT
DATE_PART(‘HOUR’, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(‘MINUTE’, fecha_incorporacion) AS minuto_incorporacion,
DATE_PART(‘SECOND’, fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;

13. En mis tiempos

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

SELECT DATE_PART('YEAR', fecha_incorporacion) AS anio_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 platzi.alumnos

-- RETO

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hora,
       EXTRACT(MINUTE FROM fecha_incorporacion) AS minutos,
       EXTRACT(SECOND FROM fecha_incorporacion) AS segundos
FROM platzi.alumnos;
SELECT EXTRACT(YEAR FROM fecha_incorporacion) AS anio_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,
		DATE_PART('HOUR',fecha_incorporacion) AS hora_incorporacion,
		DATE_PART('MINUTE',fecha_incorporacion) AS min_incorporacion,
		DATE_PART('SECOND',fecha_incorporacion) AS seg_incorporacion,fecha_incorporacion
FROM platzi.alumnos;

Me ha costado un poco seguir el ritmo de los comando. ya que uso sql server y varian un poco la estructura.
yo hice algo asi

select datepart (year, fecha_incorporacion) as anio, datepart (MONTH, fecha_incorporacion) as Mes, datepart (DAY,fecha_incorporacion) as Dia
from dbo.estudiantes;

Mis propuestas de solución empleando EXTRACT y DATE_PART extrayendo todos los elementos que conforman un campo de tipo Date-Time

--Solución 1--
SELECT EXTRACT(YEAR FROM fecha_incorporacion) AS anno_inicio, 
			EXTRACT(MONTH FROM fecha_incorporacion) AS mes_inicio, 
			EXTRACT(DAY FROM fecha_incorporacion) AS dia_inicio, 
			EXTRACT(HOUR FROM fecha_incorporacion) AS hora_inicio, 
			EXTRACT(MINUTE FROM fecha_incorporacion) AS minuto_inicio, 
EXTRACT(SECOND FROM fecha_incorporacion) AS segundo_inicio
FROM platzi.alumnos;

--Solución 2--
SELECT  DATE_PART('YEAR', fecha_incorporacion) AS anno_inicio,
        DATE_PART('MONTH', fecha_incorporacion) AS mes_inicio,
        DATE_PART('DAY', fecha_incorporacion) AS dia_inicio,
				DATE_PART('HOUR', fecha_incorporacion) AS hora_inicio,
				DATE_PART('MINUTE', fecha_incorporacion) AS minutos_inicio,
				DATE_PART('SECOND', fecha_incorporacion) AS segundos_inicio
FROM platzi.alumnos;

Reto: Sacar de igual cada uno de los campos de la hora

SELECT DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
		DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
		DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion
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;

⭐Comparto mi Solución

SELECT fecha_incorporacion, 
	EXTRACT(YEAR FROM fecha_incorporacion) AS año,
	EXTRACT(MONTH FROM fecha_incorporacion) AS mes,
	EXTRACT(DAY FROM fecha_incorporacion) AS dia,
	EXTRACT(HOUR FROM fecha_incorporacion) AS hora,
	EXTRACT(MINUTE FROM fecha_incorporacion) AS minuto,
	EXTRACT(SECOND FROM fecha_incorporacion) AS segundo
FROM platzi.alumnos;

👇

--Indicación: extrae las horas, minutos y segundos

SELECT 
	EXTRACT (HOUR FROM fecha_incorporacion) AS hora,
	EXTRACT (MINUTE FROM fecha_incorporacion) AS minuto,
	EXTRACT (SECOND FROM fecha_incorporacion) AS segundo
FROM platzi.alumnos;

--Segundo método
SELECT 
	DATE_PART('HOUR', fecha_incorporacion) AS hora,
	DATE_PART('MINUTE', fecha_incorporacion) AS minuto,
	DATE_PART('SECOND', fecha_incorporacion) AS segundo
FROM platzi.alumnos;

Mi solución al reto

SELECT *
    FROM PLATZI.ALUMNOS
    WHERE ID IN 
    (SELECT ID
        FROM PLATZI.ALUMNOS
        WHERE TUTOR_ID != 30 );

OPCION 1.
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;

OPCION 2.
SELECT DATE_PART(‘HOUR’, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(‘MINUTE’,fecha_incorporacion) AS minuto_incorporacion,
DATE_PART(‘SECOND’, fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(‘HOUR’, fecha_incorporacion) AS hora , DATE_PART(‘MINUTES’, fecha_incorporacion) AS minutos ,
DATE_PART(‘SECOND’,fecha_incorporacion) AS minutos, fecha_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(‘HOUR’,fecha_incorporacion) as hora_incorporacion,
DATE_PART(‘MINUTE’,fecha_incorporacion) as minuto_incorporacion,
DATE_PART(‘SECOND’,fecha_incorporacion) as segundo_incorporacion
from platzi.alumnos;

Dejo acá mi respuesta (lo que esta en comentarios fue lo que hicimos en clase):

-- SELECT DATE_PART('YEAR', fecha_incorporacion) AS A_incorporacion,
-- 		DATE_PART('MONTH', fecha_incorporacion) AS M_incorporacion,
-- 		DATE_PART('DAY', fecha_incorporacion) AS D_incorporacion
-- FROM platzi.alumnos;

SELECT DATE_PART('HOUR', fecha_incorporacion) AS H_incorporacion,
		DATE_PART('minute', fecha_incorporacion) AS Min_incorporacion,
		DATE_PART('SECOND', fecha_incorporacion) AS S_incorporacion
FROM platzi.alumnos

Ustedes que opinan 😄

Buenas noches:

SELECT 
fecha_incorporacion,
DATE_PART('YEAR',fecha_incorporacion) as ANIO_incorporacion,
DATE_PART('MONTH',fecha_incorporacion) as MES_incorporacion,
DATE_PART('DAY',fecha_incorporacion) as DIA_incorporacion,
DATE_PART('HOUR',fecha_incorporacion) as HOUR_incorporacion,
DATE_PART('MINUTE',fecha_incorporacion) as MINUTE_incorporacion,
DATE_PART('SECOND',fecha_incorporacion) as SECOND_incorporacion
FROM platzi.alumnos;

SELECT EXTRACT (YEAR FROM fecha_incorporacion) AS anio_incorporacion,
EXTRACT (MONTH FROM fecha_incorporacion) AS mes_incorporacion,
EXTRACT (DAY FROM fecha_incorporacion) AS dia_incorporacion,
EXTRACT (MINUTE FROM fecha_incorporacion) AS minuto_incorporacion,
EXTRACT (SECOND FROM fecha_incorporacion) AS segundo_incoporacion
FROM platzi.alumnos;

MI SOLUCION

select date_part('HOUR', fecha_incorporacion) as hora,
		date_part('MINUTE', fecha_incorporacion) as minuto,
		date_part('SECOND', fecha_incorporacion) as segundo
from platzi.alumnos

Mismos ejemplos del profe, pero aplicando filtros:

--con EXTRACT, Listado único y aplicando filtro --
SELECT DISTINCT EXTRACT(YEAR FROM fecha_incorporacion) AS anio_incorporacion
FROM platzi.alumnos
WHERE EXTRACT(YEAR FROM fecha_incorporacion) IN (2017,2018)
ORDER BY anio_incorporacion ASC;```


![Platzi - EXTRACT.png](https://static.platzi.com/media/user_upload/Platzi%20-%20EXTRACT-c41da3d0-6107-49b5-9ca0-b0e30241e6ad.jpg)

Buenas noches,
Para el reto yo lo considere de la siguiente manera:
SELECT *
FROM platzi.alumnos
WHERE id IN (
SELECT id
from platzi.alumnos
where tutor_id <> 30
);

SELECT date_part('hour', fecha_incorporacion) AS Hora,
       date_part('minute',fecha_incorporacion) AS Minutos,
       date_part('second',fecha_incorporacion) AS Segundos
FROM platzi.alumnos;

mi aporte al reto:

--- traer los registros donde muestre la Hora
SELECT date_part('hour', fecha_incorporacion) AS Hour_inco,
       date_part('minute',fecha_incorporacion) AS Min_inco,
       date_part('second',fecha_incorporacion) AS Seg_inco
FROM curso.alumnos

--- buscar y traer los registros de cierta hora
SELECT *
FROM curso.alumnos
where DATE_PART ('hour',fecha_incorporacion) = 22 AND DATE_PART ('minute',fecha_incorporacion) = 49

SELECT DATE_PART(‘HOUR’, fecha_incorporacion) AS hour_incorpor,
DATE_PART(‘MIN’, fecha_incorporacion) AS min_incorpor,
DATE_PART(‘SEC’, fecha_incorporacion) AS sec_incorpor
FROM platzi.alumnos;

–EJERCICIO SACAR LOS CAMPOS DE LA HORA
SELECT EXTRACT(‘HOUR’ FROM fecha_incorporacion) AS hora_incorporacion,
EXTRACT(‘MIN’ FROM fecha_incorporacion) AS min_incorporacion,
EXTRACT(‘SEC’ FROM fecha_incorporacion) AS seg_incorporacion
FROM platzi.alumnos;


SELECT DATE_PART(‘HOUR’, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(‘MIN’, fecha_incorporacion) AS min_incorporacion,
DATE_PART(‘SEC’, fecha_incorporacion) AS seg_incorporacion
FROM platzi.alumnos;

**Mi solución
**
** EXTRACT
SELECT EXTRACT(YEAR FROM fecha_incorporacion) AS anio_incorporacion,
EXTRACT(MONTH FROM fecha_incorporacion) AS mes_incorporacion,
EXTRACT(DAY FROM fecha_incorporacion) AS dia_incorporacion,
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;

** DATE PART
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,
DATE_PART(‘HOUR’, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(‘MINUTE’, fecha_incorporacion) AS minuto_incorporacion,
DATE_PART(‘SECOND’, fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;

Here what I think can be worthy to use the proper format on the hour

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hour_i,
       EXTRACT(MINUTE FROM fecha_incorporacion) AS minute_i,
       date_trunc('minute', fecha_incorporacion)::time AS hh_mm_i
FROM platzi.alumnos;

Fecha, horas, minutos y segundos

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,
		DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
		DATE_PART('MINUTE', fecha_incorporacion) AS minutos_incorporacion,
		DATE_PART('SECONDS', fecha_incorporacion) AS segundos_incorporacion
FROM platzi.alumnos;

La solución del reto:

SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hour_incorporacion
FROM platzi.alumnos;

SELECT EXTRACT(MINUTE FROM fecha_incorporacion) AS minute_incorporacion
FROM platzi.alumnos;

SELECT EXTRACT(SECOND FROM fecha_incorporacion) AS second_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART('HOUR', fecha_incorporacion) AS hour_incorporacion,
DATE_PART('MINUTE', fecha_incorporacion) AS minute_incorporacion,
DATE_PART('SECOND', fecha_incorporacion) AS second_incorporacion
FROM platzi.alumnos;

Hola,
yo lo hice así:
SELECT EXTRACT(HOUR FROM fecha_incorporacion) AS hora_incorporacion,
EXTRACT(MINUTE FROM fecha_incorporacion) AS minutos_incorporacion,
EXTRACT(SECOND FROM fecha_incorporacion) AS segundos_incorporacion
FROM platzi.alumnos;

Mi solución fue casi igual solo que hice una desigualdad en el subquery

SELECT *
FROM platzi.alumnos
WHERE id IN (
		
		SELECT id AS total
		FROM platzi.alumnos
		WHERE tutor_id != 9
	
); 

Extracción de los alumnos inscritos después del medio día durante 2020.

SELECT nombre, apellido, fecha_incorporacion  FROM alumnos a 
WHERE (SELECT  EXTRACT (HOUR FROM fecha_incorporacion)) > 12 
AND (select EXTRACT (YEAR FROM fecha_incorporacion)) = 2020
ORDER BY fecha_incorporacion 
SELECT EXTRACT(HOUR from fecha_incorporacion) as hora_incorporacion 
from platzi.alumnos
order by hora_incorporacion

–Con el operador de diferencia
SELECT * FROM platzi.alumnos
WHERE id IN (
SELECT id
FROM platzi.alumnos
WHERE tutor_id <> 30
);

–Otra forma de hacerlo
SELECT * FROM platzi.alumnos
WHERE id NOT IN (
SELECT id
FROM platzi.alumnos
WHERE tutor_id = 30
);

Solcución al reto de esta clase:

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 platzi.alumnos;

SELECT DATE_PART (‘HOUR’,fecha_incorporacion) AS anio_incorporacion,
DATE_PART(‘MINUTE’,fecha_incorporacion) AS mes_incorporacion,
DATE_PART(‘SECOND’,fecha_incorporacion) AS dia_incorporacion
FROM platzi.alumnos;

Mi propuesta de solución al desafío:

EXTRACT
SELECT EXTRACT (HOUR FROM fecha_incorporacion) AS hora_incorporacion
SELECT EXTRACT (MINUTE FROM fecha_incorporacion) AS minuto_incorporacion
SELECT EXTRACT (SECOND FROM fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;

DATE_PART
SELECT DATE_PART (‘HOUR’ fecha_incorporacion) AS hora_incorporacion
SELECT DATE_PART (‘MINUTE’ fecha_incorporacion) AS minuto_incorporacion
SELECT DATE_PART (‘SECOND’ fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;


SELECT DATE_PART ('HOUR', fecha_incorporacion) AS hora_incorporacion,
		DATE_PART ('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
		DATE_PART ('SECOND', fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;
SELECT DATE_PART('HOUR', FECHA_INCORPORACION)AS HORAS,
	   DATE_PART('MINUTE', FECHA_INCORPORACION)AS MINUTOS,
	   DATE_PART('SECOND', FECHA_INCORPORACION)AS SEGUNDOS
FROM PLATZI.ALUMNOS;

Respecto al ejersicio de esta clase, comparto las dos primeras soluciones que se me ocurrieron, las cuales son muy similares a las realizadas por Israel.

Solucion 1:

select id, 
	extract(hour from alumnos.fecha_incorporacion) as hora_incorporacion, 
	extract(minute from alumnos.fecha_incorporacion) as minuto_incorporacion, 
	extract(second from alumnos.fecha_incorporacion) as segundo_incorporacion
from platzi.alumnos;

Solucion 2:

SELECT id,
	   DATE_PART('HOUR', fecha_incorporacion) as hora_incorporacion, 
	   DATE_PART('MINUTE', fecha_incorporacion) as minuto_incorporacion,
	   DATE_PART('SECOND', fecha_incorporacion) as segundo_incorporacion
from platzi.alumnos;
SELECT fecha_incorporacion, DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
		DATE_PART('MINUTE', fecha_incorporacion) AS minutos_incorporacion,
		DATE_PART('SECONDS', fecha_incorporacion) AS segundos_incorporacion
FROM platzi.alumnos;
Select extract(hour from fecha_incorporacion) as hora_inc,
extract(minute from fecha_incorporacion) as min_inc,
extract(second from fecha_incorporacion) as sec_inc 
from platzi.alumnos

yo lo hice así:

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,
	DATE_PART('HOUR', fecha_incorporacion) AS hora_incorporacion,
	DATE_PART('MINUTE', fecha_incorporacion) AS minuto_incorporacion,
	DATE_PART('SECOND', fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos
ORDER BY anio_incorporacion DESC;

SELECT EXTRACT (HOUR FROM FECHA_INCORPORACION) AS HORA
FROM platzi.alumnos ;
SELECT EXTRACT (MINUTE FROM FECHA_INCORPORACION) AS HORA
FROM platzi.alumnos ;

select date_part (‘HOUR’, fecha_incorporacion) as hora_incorp,
date_part (‘MINUTE’, fecha_incorporacion) as minuto_incorp
FROM platzi.alumnos;