MySQL CURDATE() and CURRENT_TIMESTAMP return different value?
Why CURRENT_DATE and CURRENT_TIMESTAMP have different value?


They returns values which have different datatypes.

MySQL 8.0 Reference Manual  /  Functions and Operators  /  Date and Time Functions


  CURRENT_DATE and CURRENT_DATE() are synonyms for CURDATE().
  
  CURDATE()
  
  Returns the current date as a value in 'YYYY-MM-DD' or YYYYMMDD format, depending on whether the function is used in string or numeric context.





  CURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW().
  
  NOW([fsp])
  
  Returns the current date and time as a value in 'YYYY-MM-DD hh:mm:ss' or YYYYMMDDhhmmss format, depending on whether the function is used in string or numeric context. The value is expressed in the session time zone.
  
  If the fsp argument is given to specify a fractional seconds precision from 0 to 6, the return value includes a fractional seconds part of that many digits.
  
  NOW() returns a constant time that indicates the time at which the statement began to execute. (Within a stored function or trigger, NOW() returns the time at which the function or triggering statement began to execute.) This differs from the behavior for SYSDATE(), which returns the exact time at which it executes.