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.
Pero fíjate que esta forma no es tan distinta
esta funcion YEAR() solo funciona cuando el formato de la columna fecha es tipo ++date++ (fecha corta) es decir que solo te muestre AA/MM/DD si el formato es un ++time stamp++ por ejemplo que es el que contiene fecha y hora no funciona te tira un error
QUE GRANDE QUE SOS ISRAELLLLLLL
JAJAJA así es!
Cierto, es muy capo, tiene la capacidad de agarrar al elefante de SQL y meterlo dentro de una "Cajita Feliz" solamente digitando: "ORDER BY"
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:
Wow, genial!
No se podria omitir el OVER y simplemente colocar un group by?
-- Hora minuto y segundo extraido de la fecha incorporaciónSELECTHOUR(fecha_incorporacion) hora,MINUTE(fecha_incorporacion) minutos,SECOND(fecha_incorporacion) segundos
from alumnos;
MYSQL como motor
Para SQL Server:
--METODO3--MOSTRARFECHASCONDATEPARTUSE[platzi]SELECTDATEPART(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.alumnosGO--METODO4--MOSTRARFECHASCONCONVERTUSE[platzi]SELECTYEAR(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.alumnosGO--METODO5--MOSTRARFECHASCONNOMBRESUSE[platzi]SELECTYEAR(fecha_incorporacion)AS anio_incorporacion,DATENAME(MONTH,fecha_incorporacion)AS nombre_mes,DATENAME(WEEKDAY,fecha_incorporacion)AS nombre_dia
FROM platzi.alumnosGO
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;
Interesante, muchas gracias por el dato.
Lo realize de esta manera ya que el date_part no funciona en mysql workbench😆
SELECTEXTRACT(HOURFROM fecha_incorporacion)AS hour_incorporacion,EXTRACT(MINUTEFROM fecha_incorporacion)AS minute_incorporacion,EXTRACT(SECONDFROM 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.alumnosWHERE id IN(SELECT id
FROM platzi.alumnosWHERE tutor_id <>30)
o también
SELECT*FROM platzi.alumnosWHERE id not IN(SELECT id
FROM platzi.alumnosWHERE tutor_id =30)
Saludos
o el más fácil
SELECT*FROM platzi.alumnos
WHERE tutor_id <>30;
como puedo emplear esos datos extraídos con la clausula where, por ejemplo si quisiera filtrar por año o por hora.
es necesario emplear subquerys para lograr esto o de que manera puedo hacerlo ya que al poner el nombre asignado del campo extraido me arroja error de que la columna no existe.
Muchas gracias por la ayuda.
select *from(select date_part('HOUR', fecha_incorporacion)as hour,date_part('MINUTE', fecha_incorporacion)as minute,date_part('SECOND', fecha_incorporacion)as second,fecha_incorporacion
from platzi.alumnos)as horas where hour >17
Parece que solo funciona con un subquery
En SQL SEVER 2019
SELECT
YEAR(fecha_incorporacion) AS AÑO,
MONTH(fecha_incorporacion) as MES,
DAY(fecha_incorporacion) AS DIA
FROM ALUMNOS
Hacer la separación por comas para cada "cosa" que quieras traer con el SELECT
SELECTEXTRACT(HOURFROM fecha_incorporacion)AS hora_inicio,EXTRACT(MINFROM fecha_incorporacion)AS min_inicio,EXTRACT(SECONDFROM fecha_incorporacion)AS seg_inicio
FROM platzi.alumnos;
recuerdo que en MySQL podia hacer esto
select year(fecha_incorporacion)as anio_incorporacion
from platzi.alumnos
si se supone que el mismo lenguaje SQL no debería esa sentencia funcionar en ambos manejadores?
Hola, Robin. :)
Pueden existir algunas diferenciar entre motores de bases de datos en partes que no son específicamente la base del lenguaje SQL. Pueden tener sentencias.
Algo que hago cuando me pasa eso es googlear la instrucción bajo el nombre del motor en el que lo quiero usar.
¿Como se haría el Query para traer por ejemplo todas las fechas donde el mes sea igual a 7?. Se me ocurre algo asi pero no funciona. ¿Alguna pista?