My first question is what timezone is the time in. If it is a TIMESTAMP field, it is in effect stored as a UTC time but whenever you select or set it it is converted to the timezone of your connection (which defaults to your server default timezone, but some client libraries silently set for you to something else). If it is a DATETIME field, it is stored in whatever timezone you provide it in (and if that is a timezone that uses daylight saving, some values will be ambiguous). For those reasons I highly suggest always using DATETIME and always storing in UTC (and avoiding all functions that use the connection timezone, like NOW(), using e.g. UTC_TIMESTAMP() instead).
Assuming for a moment it is in your local timezone, and by "without considering time" you mean on or after midnight of 20 days ago in your local timezone, you can just do:
my $last_update = '2025-06-30 14:40:26';
if ($last_update ge (Time::Piece->localtime - 20*24*60*60)->truncate('
+to' => 'day')->strftime('%F')) {
But you might have meant on or after midnight of 19 days ago.