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

Příklady DAYOFYEAR() – MySQL

Při spouštění dotazů v MySQL můžete použít DAYOFYEAR() funkce vrátit den v roce z data.

Tato funkce přijímá jeden argument a vrací hodnotu mezi 1 a 366 , v závislosti na tom, který den v roce část argumentu představuje.

Syntaxe

Syntaxe vypadá takto:

DAYOFYEAR(date)

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

Příklad

Zde je příklad k demonstraci.

SELECT 
    DAYOFYEAR('2019-01-01') AS 'Date 1',
    DAYOFYEAR('2019-12-31') AS 'Date 2';

Výsledek:

+--------+--------+
| Date 1 | Date 2 |
+--------+--------+
|      1 |    365 |
+--------+--------+

V tomto příkladu, abych demonstroval správný efekt, spustím tuto funkci dvakrát ve dvou různých datech – jedno na začátku roku a druhé na konci roku.

DAYOFYEAR() vs DAYOFMONTH()

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

SET @date = '2019-10-03';
SELECT 
    @date,
    DAYOFMONTH(@date) AS 'Day of Month',
    DAYOFYEAR(@date) AS 'Day of Year';

Výsledek:

+------------+--------------+-------------+
| @date      | Day of Month | Day of Year |
+------------+--------------+-------------+
| 2019-10-03 |            3 |         276 |
+------------+--------------+-------------+

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.

DAYOFYEAR() funkce na druhé straně vrací hodnotu mezi 1 a 366 . Obnoví se zpět na 1 na začátku každého roku.

Příklad databáze

Zde je příklad použití DAYOFYEAR() při dotazu na databázi:

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  DAYOFYEAR(payment_date) AS 'Day of Year'
FROM payment
WHERE payment_id = 1;

Výsledek:

+---------------------+-------------+
| Date/Time           | Day of Year |
+---------------------+-------------+
| 2005-05-25 11:30:37 |         145 |
+---------------------+-------------+

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(),
    DAYOFYEAR(NOW());

Výsledek:

+---------------------+------------------+
| NOW()               | DAYOFYEAR(NOW()) |
+---------------------+------------------+
| 2018-06-26 08:23:04 |              177 |
+---------------------+------------------+

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

SELECT 
    CURDATE(),
    DAYOFYEAR(CURDATE()); 

Výsledek:

+------------+----------------------+
| CURDATE()  | DAYOFYEAR(CURDATE()) |
+------------+----------------------+
| 2018-06-26 |                  177 |
+------------+----------------------+

  1. VLOŽTE ... PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE s KDE?

  2. Několik oblastí vylepšení v PostgreSQL 9.4

  3. Používejte relační databáze MySQL na Ubuntu 10.10 (Maverick)

  4. První písmeno velké. MySQL