AÑOSEMANA () La función en MySQL se utiliza para encontrar el año y la semana para una fecha determinada. Si la fecha es NULL, la función YEARWEEK() devolverá NULL. De lo contrario, devuelve el valor del año que oscila entre 1000 y 9999 y el valor de la semana que oscila entre 0 y 53.
Sintaxis:
YEARWEEK(date, mode)>
Parámetro: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
C
- fecha: La fecha o fechahora de la que queremos extraer el año y la semana. modo: especifica en qué día comienza la semana. La siguiente tabla describe cómo funciona el argumento modo.
| Modo | Primer dia de la semana | Rango | La semana 1 es la primera semana... |
|---|---|---|---|
| 0 | Domingo | 0-53 | con un domingo en este año |
| 1 | Lunes | 0-53 | con 4 o más días este año |
| 2 | Domingo | 1-53 | con un domingo en este año |
| 3 | Lunes | 1-53 | con 4 o más días este año |
| 4 | Domingo | 0-53 | con 4 o más días este año |
| 5 | Lunes | 0-53 | con un lunes en este año |
| 6 | Domingo | 1-53 | con 4 o más días este año |
| 7 | Lunes | 1-53 | con un lunes en este año |
Devoluciones : Devuelve el valor del año y la semana juntos.
Ejemplo 1 : Encontrar el año y la semana actuales utilizando la función Año() el 28/09/2020.
SELECT YEARWEEK(NOW()) AS Current_YearWeek;>
Producción :
+------------------+ | Current_YearWeek | +------------------+ | 202039 | +------------------+ 1 row in set (0.00 sec)>
Entonces, el año actual es 2020 y el número de semana es 39.
Ejemplo-2: Encontrar el año y la semana a partir de una fecha y hora determinada utilizando la función YEARWEEK().
SELECT YEARWEEK('2018-04-22 08:09:22') AS Year_Week ;> Producción :
+-----------+ | Year_Week | +-----------+ | 201816 | +-----------+>
Entonces, el año es 2018 y el número de semana es 16 en este ejemplo.
Ejemplo-3: Encontrar el año y la semana a partir de una fecha y hora determinada utilizando la función YEARWEEK() cuando la fecha es NULL.
transición de opacidad css
SELECT YEARWEEK(NULL) AS Year_Week ;>
Producción :
+-----------+ | Year_Week | +-----------+ | NULL | +-----------+>
Ejemplo-4: En este ejemplo, encontraremos la cantidad de estudiantes matriculados en un curso por cada semana del año. Para demostrarlo, cree una tabla llamada.
Curso :
CREATE TABLE Course( Course_name VARCHAR(100) NOT NULL, Student_id INT NOT NULL, Student_name VARCHAR(100) NOT NULL, Enroll_Date Date NOT NULL, PRIMARY KEY(Student_id) );>
Ahora insertando algunos datos en la tabla Producto:
INSERT INTO Course(Course_Name, Student_id, Student_name, Enroll_Date) VALUES ( 'CS101', 161011, 'Amit Singh', '2019-11-26' ), ( 'CS101', 161029, 'Arun Kumar', '2019-11-30' ), ( 'CS101', 161031, 'Sanya Jain', '2019-12-08' ), ( 'CS101', 161058, 'Riya Shah', '2019-12-15' ), ( 'CS101', 162051, 'Amit Sharma', '2019-12-18' ), ( 'CS101', 161951, 'Sayan Singh', '2019-12-26' ), ( 'CS101', 167051, 'Rishi Jana', '2020-01-02' ), ( 'CS101', 168001, 'Aniket Dravid', '2020-01-10' ), ( 'CS101', 168051, 'Rita Singh', '2020-01-13' ), ( 'CS101', 166051, 'Kalyan Ghandi', '2020-01-26' ) ;>
Entonces, nuestra tabla se ve así:
mysql>seleccione * del curso; +-------------+------------+---------------+------ -------+ | Nombre_curso | ID_estudiante | nombre_estudiante | Fecha_inscripción | +-------------+------------+---------------+------ -------+ | CS101 | 161011 | Amit Singh | 2019-11-26 | | CS101 | 161029 | Arun Kumar | 2019-11-30 | | CS101 | 161031 | Sanya jainista | 2019-12-08 | | CS101 | 161058 | Riya Shah | 2019-12-15 | | CS101 | 161951 | Sayán Singh | 2019-12-26 | | CS101 | 162051 | Amit Sharma | 2019-12-18 | | CS101 | 166051 | Kalyan Ghandi | 2020-01-26 | | CS101 | 167051 | Rishi Jana | 2020-01-02 | | CS101 | 168001 | Aniket Dravid | 2020-01-10 | | CS101 | 168051 | Rita Singh | 2020-01-13 | +-------------+------------+---------------+------ -------+ 10 filas en conjunto (0.00 seg)>
Ahora, vamos a encontrar la cantidad de estudiantes matriculados en el curso por cada semana y año.
SELECT YEARWEEK(Enroll_Date) YearandWeek, COUNT(Student_id) Student_Enrolled FROM Course GROUP BY YEARWEEK(Enroll_Date) ORDER BY YEARWEEK(Enroll_Date);>
Producción :
+-------------+------------------+ | YearandWeek | Student_Enrolled | +-------------+------------------+ | 201947 | 2 | | 201949 | 1 | | 201950 | 2 | | 201951 | 1 | | 201952 | 1 | | 202001 | 1 | | 202002 | 1 | | 202004 | 1 | +-------------+------------------+ 8 rows in set (0.00 sec).>