Obtenga el enésimo día de la semana del mes a partir de una columna con registros de FECHA en MySQL
Necesitamos encontrar el día de la semana, es decir, la semana 1 de la fecha 1 a la 7, la semana 2 de la fecha 8 a la 14, etc. Para obtener el día, use la función DAY() en MySQL. Establezca las condiciones para obtener el día de la semana (número) utilizando la declaración CASE.
Veamos ahora un ejemplo y creemos una tabla:
mysql> create table DemoTable
(
AdmissionDate date
);
Query OK, 0 rows affected (0.63 sec)
Inserte algunos registros en la tabla usando el comando insertar:
mysql> insert into DemoTable values('2019-09-12');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values('2019-09-06');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('2019-09-26');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('2019-09-30');
Query OK, 1 row affected (0.14 sec)
Muestre todos los registros de la tabla usando la declaración de selección:
mysql> select *from DemoTable;
Esto producirá el siguiente resultado:
+---------------+
| AdmissionDate |
+---------------+
| 2019-09-12 |
| 2019-09-06 |
| 2019-09-26 |
| 2019-09-30 |
+---------------+
4 rows in set (0.00 sec)
La siguiente es la consulta para obtener el día de la semana (número) del mes:
mysql> select
(
CASE WHEN DAY(AdmissionDate) BETWEEN 1 AND 7 THEN 1
WHEN DAY(AdmissionDate) BETWEEN 8 AND 14 THEN 2
WHEN DAY(AdmissionDate) BETWEEN 15 AND 21 THEN 3
WHEN DAY(AdmissionDate) BETWEEN 22 AND 28 THEN 4
else 5
end
) as NthWeekDayOfMonth
from DemoTable;
Esto producirá el siguiente resultado:
+-------------------+
| NthWeekDayOfMonth |
+-------------------+
| 2 |
| 1 |
| 4 |
| 5 |
+-------------------+
4 rows in set (0.01 sec)