sql >> Database >  >> RDS >> MariaDB

Hoe WEEKDAY() werkt in MariaDB

In MariaDB, WEEKDAY() is een ingebouwde datum- en tijdfunctie die de weekdag vanaf een bepaalde datum retourneert.

Het accepteert één argument, namelijk de datum waarvan u de weekdag wilt extraheren.

Het geeft de dag als een getal terug. De indexnummering begint bij nul voor maandag (d.w.z. 0 =maandag, 1 =dinsdag, enz.). Dit in tegenstelling tot DAYOFWEEK() , die voldoet aan de ODBC-standaard (1 =zondag, 2 =maandag, enz.).

Syntaxis

De syntaxis gaat als volgt:

WEEKDAY(date)

Waar date is de datum om de weekdag van te krijgen.

Voorbeeld

Hier is een voorbeeld:

SELECT WEEKDAY('2030-01-25');

Resultaat:

+-----------------------+
| WEEKDAY('2030-01-25') |
+-----------------------+
|                     4 |
+-----------------------+

Vergeleken met de naam van de dag

Hier is er nog een, naast DAYNAME() om de naam van de dag terug te geven:

SELECT 
    WEEKDAY('2030-01-21'),
    DAYNAME('2030-01-21');

Resultaat:

+-----------------------+-----------------------+
| WEEKDAY('2030-01-21') | DAYNAME('2030-01-21') |
+-----------------------+-----------------------+
|                     0 | Monday                |
+-----------------------+-----------------------+

Zoals gezegd begint de indexnummering voor maandag bij 0.

Hier is zondag:

SELECT 
    WEEKDAY('2030-01-20'),
    DAYNAME('2030-01-20');

Resultaat:

+-----------------------+-----------------------+
| WEEKDAY('2030-01-20') | DAYNAME('2030-01-20') |
+-----------------------+-----------------------+
|                     6 | Sunday                |
+-----------------------+-----------------------+

Datum/tijd-waarden

Het werkt ook met datetime-waarden:

SELECT WEEKDAY('2030-01-24 10:30:45');

Resultaat:

+--------------------------------+
| WEEKDAY('2030-01-24 10:30:45') |
+--------------------------------+
|                              3 |
+--------------------------------+

Nul dagen

Nul dagen resulteren in null .

Voorbeeld:

SELECT WEEKDAY('2030-00-00');

Resultaat:

+-----------------------+
| WEEKDAY('2030-00-00') |
+-----------------------+
|                  NULL |
+-----------------------+

Numerieke datums

Het is ook mogelijk om datums als een getal door te geven, zolang het maar logisch is als een datum.

Voorbeeld

SELECT WEEKDAY(20300125);

Resultaat:

+-------------------+
| WEEKDAY(20300125) |
+-------------------+
|                 4 |
+-------------------+

Of zelfs het volgende (met een jaartal van twee cijfers):

SELECT WEEKDAY(300125);

Resultaat:

+-----------------+
| WEEKDAY(300125) |
+-----------------+
|               4 |
+-----------------+

Maar het moet logisch zijn als een date. Dit gebeurt er als ik het daggedeelte verhoog naar een ongeldige dag:

SELECT WEEKDAY(20300135);

Resultaat:

+-------------------+
| WEEKDAY(20300135) |
+-------------------+
|              NULL |
+-------------------+

Andere scheidingstekens

U kunt andere scheidingstekens voor de datum gebruiken. MariaDB is behoorlijk vergevingsgezind als het gaat om scheidingstekens op datums. Hier zijn enkele geldige voorbeelden:

SELECT 
    WEEKDAY('2030/01/25'),
    WEEKDAY('2030,01,25'),
    WEEKDAY('2030:01:25'),
    WEEKDAY('2030;01!25');

Resultaat (met verticale uitvoer):

WEEKDAY('2030/01/25'): 4
WEEKDAY('2030,01,25'): 4
WEEKDAY('2030:01:25'): 4
WEEKDAY('2030;01!25'): 4

Huidige datum

We kunnen NOW() doorgeven als het datumargument om de huidige datum te gebruiken:

SELECT 
    NOW(),
    WEEKDAY(NOW());

Resultaat:

+---------------------+----------------+
| NOW()               | WEEKDAY(NOW()) |
+---------------------+----------------+
| 2021-05-15 09:44:50 |              5 |
+---------------------+----------------+

Ongeldige argumenten

Wanneer een ongeldig argument wordt doorgegeven, WEEKDAY() retourneert null :

SELECT WEEKDAY('Homer');

Resultaat:

+------------------+
| WEEKDAY('Homer') |
+------------------+
|             NULL |
+------------------+

Ontbrekend argument

Bellen WEEKDAY() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT WEEKDAY();

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKDAY'

En nog een voorbeeld:

SELECT WEEKDAY('2030-01-25', '2045-05-08');

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKDAY'

  1. Hoe de serverstatus in MySQL Workbench te controleren met behulp van de GUI

  2. IllegalStateException:database al gesloten (met ViewPager)

  3. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:communicatieverbinding mislukt

  4. Gebruik sp_depends niet in SQL Server (het is verouderd)