Búsqueda de sitios web

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)