How DATE() Works in MariaDB

In MariaDB, DATE() is a built-in date and time function that extracts the date part of a date or datetime expression.

You pass the date/datetime expression as an argument when calling the function.

Syntax

The syntax goes like this:

DATE(expr)

Where expr is an the date/datetime expression.

Example

Here’s an example:

SELECT DATE('2057-08-25 18:00:10');

Result:

+-----------------------------+
| DATE('2057-08-25 18:00:10') |
+-----------------------------+
| 2057-08-25                  |
+-----------------------------+

Here it is with just the date expression:

SELECT DATE('2057-08-25');

Result:

+--------------------+
| DATE('2057-08-25') |
+--------------------+
| 2057-08-25         |
+--------------------+

Current Date

Here, we return the current date by passing NOW() as the argument:

SELECT
    NOW(),
    DATE(NOW());

Result:

+---------------------+-------------+
| NOW()               | DATE(NOW()) |
+---------------------+-------------+
| 2021-05-10 09:26:32 | 2021-05-10  |
+---------------------+-------------+

Invalid Argument

When passed an invalid argument, DATE() returns null:

SELECT DATE('Homer Simpson');

Result:

+-----------------------+
| DATE('Homer Simpson') |
+-----------------------+
| NULL                  |
+-----------------------+

Although, until MariaDB 5.5.32, some versions of MariaDB returned 0000-00-00 when passed an invalid date.

Missing Argument

Calling DATE() without passing an argument results in an error:

SELECT DATE();

Result:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1