SQL NOW Vs CURDATE Datatype

Those functions have something to do with the current date. The returned results, however, are not the same, indicating that the functions are distinct even if you don't see it in some circumstances.

I've added the function CURTIME() to the overview for completeness' sake.


SQL NOW Datatype

NOW() returns both the current date and the current time, such as 2021-01-01 20:00:00.

NOW() returns the current timezone's whole time.

Example: The following is a demo of NOW() function:

Mysql

select NOW();

Output: The following is the output of now function:

Expr1000
20-04-2022 3:24:00

SQL CURDATE

CURDATE() returns the current date without the time, such as 2021-01-01.

Only the date component of the date in the current timezone is returned by CURDATE().

Example: A demo of CURDATE().

Mysql

select CURDATE();

The date component will be returned by the above query

Output: The following is the output that displays only date, not time

curdate()
21-04-2022

SQL Difference Between NOW And CURDATE Datatype

There are 5 main distinguish between now and curdate function:-

NOW CURDATE
NOW returns a timestamp in multiple formats containing the date and time components. CURDATE returns the current time's DATE component.
NOW() returns the date and time when the statement, procedure, etc. began. Current date() returns merely the date.aa
NOW() appears to be dynamic and does not appear to benefit from indexing CURRENT DATE is a static variable that works well with date indexes.
The NOW() function returns a timestamp for the current datetime. The CURDATE() function only returns the current date, not the time.
Depending on how it was asked, NOW() returns the date and time components as a timestamp in various forms. The DATE component of the current time is returned by CURDATE(). CURDATE MANUAL.

NOTE:

CURDATE() = DATE(NOW())
NOW()     = CONCAT(CURDATE(), ' ', CURTIME())

Which function is appropriate for which purpose depends on whether you only need the date, only the time or both of them.