You can actually change them in Settings -> Permalinks and it will change the link that generated for the post. And if you still be unhappy with result you can remove WordPress rewrite rules for dates with date_rewrite_rules
filter.
UPDATE:
In this case, you can use post_rewrite_rules to keep the date to post rule working and implement redirect during tempalte_redirect
action-hook. You can plug this code into your codebase and flush rewrite rules in WordPress. Should work right after that.
add_filter( 'post_rewrite_rules', function( $rules ) {
global $wp_rewrite;
$rule = [ '([0-9]{4})/([0-9]{1,2})/([^/]+)(?:/([0-9]+))?/?$' =>
'index.php?year=$matches[1]&monthnum=$matches[2]&name=$matches[3]' ];
return array_merge($rules, $rule);
});
add_filter('template_redirect', function(){
global $wp_query;
if ( ! is_single() ) {
return;
}
if ( $wp_query->get('monthnum') !== "" && $wp_query->get('year') !== "" ) {
wp_redirect( get_permalink(), 301 );
}
});