我需要删除最后一分钟插入的记录,并且我必须使用数据库中存在的特定系统日期,该日期实际上已被截断(从双重返回中选择sys_date 20/3/2014)。 我尝试将日期格式化为显示分钟,然后将其再次转换为日期,以便使用sys_date SI sys_date-1 分钟之间选择最后一分钟插入的记录, 但我似乎并没有朝着好的方向前进。例如:
select to_date(to_char((sys_date - 1 / (24 * 60)), 'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS') from dual;
返回 19/3/2014 11:59:00 PM,这与我的格式掩码不匹配,老实说,我真的不明白(这非常令人沮丧)为什么作为内部选择返回的字符串
select to_char((sys_date - 1 / (24 * 60)), 'DD/MM/YYYY HH24:MI:SS') from dual;
返回 19/3/2014 23:59:00。任何帮助或建议都非常感谢:)谢谢!
选择最后一分钟插入的行:
select *
from my_table
where inserted_date > sysdate-1/(24*60);
(这假定您的表有一个名为 inserted_date
的date
列,用于保存插入日期和时间。
SYSDATE
总是返回当前日期和时间,但是您在SQL Plus,SQL Developer或Toad等工具中看到的内容取决于用于将其转换为要播放的字符串的默认格式掩码。 通常默认情况下,这些不显示时间。 在 SQL Plus 中,您可以执行以下操作:
SQL> alter session set nls_date_format='DD_MON-YYYY HH24:MI:SS';
Session altered.
SQL> select sysdate from dual;
SYSDATE
--------------------
08_JAN-2015 16:37:00