Mysql
 sql >> Base de données >  >> RDS >> Mysql

DAYOFWEEK() Exemples – MySQL

Vous pouvez utiliser le DAYOFWEEK() fonction dans MySQL pour renvoyer le jour de la semaine à partir d'une date.

Dans ce contexte, une valeur de retour de 1 correspond à dimanche, 2 correspond au lundi, etc.

Cet article contient des exemples à démontrer.

Syntaxe

La syntaxe ressemble à ceci :

DAYOFWEEK(date)

date est la valeur de date à partir de laquelle vous voulez que le jour de la semaine soit renvoyé.

Exemple

Voici un exemple pour illustrer.

SELECT DAYOFWEEK('2019-01-01') AS 'Result';

Résultat :

+--------+
| Result |
+--------+
|      3 |
+--------+

Nous pouvons exécuter ceci avec le DAYNAME() fonction pour voir à quel jour cela correspond :

SET @date = '2019-01-01';
SELECT 
    @date,
    DAYNAME(@date) AS 'Day Name',
    DAYOFWEEK(@date) AS 'Day of Week';

Résultat :

+------------+----------+-------------+
| @date      | Day Name | Day of Week |
+------------+----------+-------------+
| 2019-01-01 | Tuesday  |           3 |
+------------+----------+-------------+

DAYOFWEEK() contre DAYOFMONTH()

Voici un exemple pour démontrer la différence entre le DAYOFWEEK() et DAYOFMONTH() fonctions.

SET @date = '2019-01-20';
SELECT 
    @date,
    DAYNAME(@date) AS 'Day Name',
    DAYOFWEEK(@date) AS 'Day of Week',
    DAYOFMONTH(@date) AS 'Day of Month';

Résultat :

+------------+----------+-------------+--------------+
| @date      | Day Name | Day of Week | Day of Month |
+------------+----------+-------------+--------------+
| 2019-01-20 | Sunday   |           1 |           20 |
+------------+----------+-------------+--------------+

Le DAYOFMONTH() la fonction renvoie une valeur entre 1 et 31 (ou 0 pour les dates avec une partie zéro jour) qui représente le jour du mois. Il se réinitialise à 1 au début de chaque mois.

Le DAYOFWEEK() fonction d'autre part, renvoie une valeur entre 1 et 7 . Il se réinitialise à 1 au début de chaque semaine.

Un exemple de base de données

Ici, nous faisons une chose similaire aux exemples précédents, sauf que cet exemple utilise des données d'une base de données :

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  DAYNAME(payment_date) AS 'Day Name',
  DAYOFWEEK(payment_date) AS 'Day of Week'
FROM payment
WHERE payment_id = 1;

Résultat :

+---------------------+-----------+-------------+
| Date/Time           | Day Name  | Day of Week |
+---------------------+-----------+-------------+
| 2005-05-25 11:30:37 | Wednesday |           4 |
+---------------------+-----------+-------------+

Date/heure actuelle

Voici un exemple d'extraction de la partie jour de la date et de l'heure actuelles (qui est renvoyée à l'aide de NOW() fonction).

SELECT 
    NOW(),
    DAYOFWEEK(NOW());

Résultat :

+---------------------+------------------+
| NOW()               | DAYOFWEEK(NOW()) |
+---------------------+------------------+
| 2018-06-26 07:42:31 |                3 |
+---------------------+------------------+

Une autre façon de faire est d'utiliser le CURDATE() fonction, qui renvoie uniquement la date (mais pas l'heure).

SELECT 
    CURDATE(),
    DAYOFWEEK(CURDATE());   

Résultat :

+------------+----------------------+
| CURDATE()  | DAYOFWEEK(CURDATE()) |
+------------+----------------------+
| 2018-06-26 |                    3 |
+------------+----------------------+