I think you have misunderstood date and timestamp
select c1 into v_date1 from table_a;
Gives you a date object
v_date2 timestamp;
Gives you a timestamp object
Both these objects contain date and time components. Timestamp contains more detailed (fraction of second information) as well.
If you want date only you can use a number of built in functions...
For the full information...
select systimestamp from dual;
select sysdate from dual;
but be aware that your query environment might not display the full date information depending on its settings.
To remove the time component...
select trunc(systimestamp) from dual;
select trunc(sysdate) from dual;
or for more control
select trunc(systimestamp, 'dd') from dual;
select trunc(sysdate, 'dd') from dual;
where the 'dd' can be replaced with other values such as 'yyyy' if you want to get the first day of the year or 'mm' for the first day of the month.
or rounding rather than removing (again with the optional values and day being the default)
select round(systimestamp, 'dd') from dual;
select round(sysdate, 'dd') from dual;
However all these functions still return data/timestamp values so they still contain the time information - it is just manipulated.
If all you want is a string with the day you need to use to_char
select to_char(systimestamp, 'dd-mm-yyyy') from dual;
select to_char(sysdate, 'dd-mm-yyyy') from dual;
using what ever date format you prefer.