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 鈥淵EAR(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: 鈥淢ay 17, 2020鈥
Date2: 鈥淢ay 17, 2020鈥
Date3: 鈥淢ay 17th, 2020鈥
Date 4: 鈥淪unday 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(鈥楬OUR鈥,fecha_incorporacion) AS hora_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(鈥楳INUTES鈥,fecha_incorporacion) AS min_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(鈥楽ECONDS鈥,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(鈥榟our鈥, fecha_incorporacion) as hour_incorporacion,
date_part(鈥榤inute鈥, fecha_incorporacion) as minute_incorporacion,
date_part(鈥榮econd鈥, 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

鈥揅on 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;

鈥揅on DATE_PART
SELECT
DATE_PART(鈥楬OUR鈥, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(鈥楳INUTE鈥, fecha_incorporacion) AS minuto_incorporacion,
DATE_PART(鈥楽ECOND鈥, 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;

猸怌omparto 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 (鈥楬OUR鈥 FROM fecha_incorporacion) AS hora_incorporacion,
EXTRACT (鈥楳INUTE鈥 FROM fecha_incorporacion) AS minuto_incorporacion,
EXTRACT (鈥楽ECOND鈥 FROM fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;

OPCION 2.
SELECT DATE_PART(鈥楬OUR鈥, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(鈥楳INUTE鈥,fecha_incorporacion) AS minuto_incorporacion,
DATE_PART(鈥楽ECOND鈥, fecha_incorporacion) AS segundo_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(鈥楬OUR鈥, fecha_incorporacion) AS hora , DATE_PART(鈥楳INUTES鈥, fecha_incorporacion) AS minutos ,
DATE_PART(鈥楽ECOND鈥,fecha_incorporacion) AS minutos, fecha_incorporacion
FROM platzi.alumnos;

SELECT DATE_PART(鈥楬OUR鈥,fecha_incorporacion) as hora_incorporacion,
DATE_PART(鈥楳INUTE鈥,fecha_incorporacion) as minuto_incorporacion,
DATE_PART(鈥楽ECOND鈥,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(鈥楬OUR鈥, fecha_incorporacion) AS hour_incorpor,
DATE_PART(鈥楳IN鈥, fecha_incorporacion) AS min_incorpor,
DATE_PART(鈥楽EC鈥, fecha_incorporacion) AS sec_incorpor
FROM platzi.alumnos;

鈥揈JERCICIO SACAR LOS CAMPOS DE LA HORA
SELECT EXTRACT(鈥楬OUR鈥 FROM fecha_incorporacion) AS hora_incorporacion,
EXTRACT(鈥楳IN鈥 FROM fecha_incorporacion) AS min_incorporacion,
EXTRACT(鈥楽EC鈥 FROM fecha_incorporacion) AS seg_incorporacion
FROM platzi.alumnos;


SELECT DATE_PART(鈥楬OUR鈥, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(鈥楳IN鈥, fecha_incorporacion) AS min_incorporacion,
DATE_PART(鈥楽EC鈥, 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(鈥榊EAR鈥, fecha_incorporacion) AS anio_incorporacion,
DATE_PART(鈥楳ONTH鈥, fecha_incorporacion) AS mes_incorporacion,
DATE_PART(鈥楧AY鈥, fecha_incorporacion) AS dia_incorporacion,
DATE_PART(鈥楬OUR鈥, fecha_incorporacion) AS hora_incorporacion,
DATE_PART(鈥楳INUTE鈥, fecha_incorporacion) AS minuto_incorporacion,
DATE_PART(鈥楽ECOND鈥, 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

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

鈥揙tra 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 (鈥楬OUR鈥,fecha_incorporacion) AS anio_incorporacion,
DATE_PART(鈥楳INUTE鈥,fecha_incorporacion) AS mes_incorporacion,
DATE_PART(鈥楽ECOND鈥,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 (鈥楬OUR鈥 fecha_incorporacion) AS hora_incorporacion
SELECT DATE_PART (鈥楳INUTE鈥 fecha_incorporacion) AS minuto_incorporacion
SELECT DATE_PART (鈥楽ECOND鈥 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 (鈥楬OUR鈥, fecha_incorporacion) as hora_incorp,
date_part (鈥楳INUTE鈥, fecha_incorporacion) as minuto_incorp
FROM platzi.alumnos;