sql >> Databasteknik >  >> RDS >> Mysql

DAYOFYEAR() Exempel – MySQL

När du kör frågor i MySQL kan du använda DAYOFYEAR() funktion för att returnera dagen på året från ett datum.

Den här funktionen accepterar ett argument och den returnerar ett värde mellan 1 och 366 , beroende på vilken dag på året dagdelen av argumentet representerar.

Syntax

Syntaxen ser ut så här:

DAYOFYEAR(date)

Där date är det datumvärde som du vill att dagen på året ska returneras från.

Exempel

Här är ett exempel att visa.

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

Resultat:

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

I det här exemplet, för att visa den rätta effekten, kör jag den här funktionen två gånger på två olika datum – ett i början av året och det andra i slutet av året.

DAYOFYEAR() kontra DAYOFMONTH()

Här är ett exempel för att visa skillnaden mellan DAYOFYEAR() och DAYOFMONTH() funktioner.

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

Resultat:

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

DAYOFMONTH() funktion returnerar ett värde mellan 1 och 31 (eller 0 för datum med en nolldag del) som representerar dagen i månaden. Den återställs till 1 i början av varje månad.

DAYOFYEAR() funktion å andra sidan, returnerar ett värde mellan 1 och 366 . Den återställs till 1 i början av varje år.

Ett databasexempel

Här är ett exempel på hur du använder DAYOFYEAR() när du frågar efter en databas:

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

Resultat:

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

Aktuellt datum/tid

Här är ett exempel på att extrahera dagdelen från det aktuella datumet och tiden (som returneras med NOW() funktion).

SELECT 
    NOW(),
    DAYOFYEAR(NOW());

Resultat:

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

Ett annat sätt att göra detta är att använda CURDATE() funktion, som endast returnerar datumet (men inte tiden).

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

Resultat:

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

  1. Gör fantastiska listor själv, eller GitHub som anteckningsbok

  2. Postgresql skapar inte db med "createdb" som superanvändare, men matar inte ut fel

  3. Hur installerar man Postgis till en Keg-installation av [email protected] med Homebrew?

  4. Få kortdagsnamnet i SQL Server (T-SQL)