Friday, January 17, 2025

What is the MySQL equivalent of DATE_TRUNC?

 In MySQL, there isn't a direct equivalent to the DATE_TRUNC function available in PostgreSQL. However, you can achieve similar functionality by using DATE_FORMAT or DATE functions, depending on the precision you want to truncate to (e.g., year, month, day, etc.).

Here are some examples of how to simulate DATE_TRUNC behavior in MySQL:

  1. Truncate to Year:

    SELECT DATE_FORMAT(NOW(), '%Y-01-01');
    

    This will give you the first day of the current year.

  2. Truncate to Month:

    SELECT DATE_FORMAT(NOW(), '%Y-%m-01');
    

    This will give you the first day of the current month.

  3. Truncate to Day:

    SELECT DATE(NOW());
    

    This will give you the current date without the time portion.

  4. Truncate to Hour:

    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00');
    

    This will truncate the current date and time to the start of the current hour.

These approaches allow you to truncate a datetime or timestamp value in MySQL to a desired level of granularity.

No comments:

Post a Comment