我认为您误解了日期和时间戳
select c1 into v_date1 from table_a;
给你一个日期对象
v_date2 timestamp;
给你一个时间戳对象
这两个对象都包含日期和时间组件。时间戳也包含更详细的信息(第二信息的一部分)。
如果你只想要日期,你可以使用许多内置函数......
有关完整信息...
select systimestamp from dual;
select sysdate from dual;
但请注意,您的查询环境可能不会显示完整的日期信息,具体取决于其设置。
要删除时间组件...
select trunc(systimestamp) from dual;
select trunc(sysdate) from dual;
或更多控制
select trunc(systimestamp, 'dd') from dual;
select trunc(sysdate, 'dd') from dual;
如果您想获得一年的第一天或一个月的第一天的“mm”,则可以将“dd”替换为其他值,例如“yyyy”。
或舍入而不是删除(再次使用可选值和默认值)
select round(systimestamp, 'dd') from dual;
select round(sysdate, 'dd') from dual;
然而,所有这些函数仍然返回数据/时间戳值,所以它们仍然包含时间信息——它只是被操纵的。
如果你想要的只是一个字符串,你需要使用 to_char
select to_char(systimestamp, 'dd-mm-yyyy') from dual;
select to_char(sysdate, 'dd-mm-yyyy') from dual;
使用您喜欢的任何日期格式。