sql >> Databáze >  >> RDS >> Mysql

Příklady DAYOFWEEK() – MySQL

Můžete použít DAYOFWEEK() funkci v MySQL vrátit den v týdnu z data.

V tomto kontextu návratová hodnota 1 odpovídá neděli 2 odpovídá pondělí atd.

Tento článek obsahuje příklady k demonstraci.

Syntaxe

Syntaxe vypadá takto:

DAYOFWEEK(date)

Kde date je hodnota data, ze které chcete vrátit den v týdnu.

Příklad

Zde je příklad k demonstraci.

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

Výsledek:

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

Můžeme to spustit spolu s DAYNAME() funkce, abyste viděli, kterému dni odpovídá:

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

Výsledek:

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

DAYOFWEEK() vs DAYOFMONTH()

Zde je příklad demonstrující rozdíl mezi DAYOFWEEK() a DAYOFMONTH() funkce.

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

Výsledek:

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

DAYOFMONTH() funkce vrací hodnotu mezi 1 a 31 (nebo 0 pro data s nulovou částí dne), která představuje den v měsíci. Obnoví se zpět na 1 na začátku každého měsíce.

DAYOFWEEK() funkce na druhé straně vrací hodnotu mezi 1 a 7 . Obnoví se zpět na 1 na začátku každého týdne.

Příklad databáze

Zde uděláme podobnou věc jako v předchozích příkladech s tím rozdílem, že tento příklad používá data z databáze:

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;

Výsledek:

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

Aktuální datum/čas

Zde je příklad extrahování části dne z aktuálního data a času (který je vrácen pomocí NOW() funkce).

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

Výsledek:

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

Dalším způsobem, jak toho dosáhnout, je použít CURDATE() funkce, která vrací pouze datum (ale ne čas).

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

Výsledek:

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


  1. Povolení podpory PostgreSQL v PHP na Mac OS X

  2. Nelze odstranit nebo aktualizovat nadřazený řádek:selhalo omezení cizího klíče

  3. Jak načíst všechny řádky v mé DB?

  4. Generujte náhodná celá čísla bez kolizí