Show posts from last 3 years in posts page

You should adapt it to fit your needs, e.g. (not tested) :
// Create a new filtering function that will add our where clause to the query

function filter_where( $where="" ) {
   $where .= " AND post_date > '" . date('Y-m-d', strtotime('-1 year')) . "'";
return $where;
}<br>

add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );<br>
remove_filter( 'posts_where', 'filter_where' );