Change datatype from DATE to VARCHAR()
If you want to put yesterday's date into the variable then do it during assignment. And if you want a varchar, then declare it as one - your current code does an implicit and useless conversion back a varchar back to a date anyway. 

So something like: 

CREATE OR REPLACE procedure create_table_dateWise27()
LANGUAGE plpgsql
as $$
declare 
  d_date varchar;
begin

  d_date := to_char(current_date - 1, 'yyyy_mm_dd'); --&lt;&lt; yesterday

  EXECUTE format('
    CREATE TABLE IF NOT EXISTS %I(
      nodeip text,
      interface text, 
      nodeip_interface text
    )','test_'|| d_date);

  commit;
end;
$$; 


Note that I changed the format mask for the to_char() call to use underscores (_)  rather than - because a dash is invalid in an SQL identifier (table name) and thus would require the use of a quoted identifier which you should really avoid.