to_date 和 to_char 问题
to_date and to_char issue
我需要删除最后一分钟插入的记录,我必须使用我的数据库中存在的特定系统日期,该日期实际上被截断了(select sys_date from dual returns 2014 年 3 月 20 日)。我尝试格式化日期以显示分钟,然后再次将其转换为日期,以便在最后一分钟使用 sys_date si sys_date-1 分钟插入 select 记录,但它没有看来我正朝着好的方向前进。例如:
select to_date(to_char((sys_date - 1 / (24 * 60)), 'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS') from dual;
returns 19/3/2014 11:59:00 下午,这与我的格式掩码不匹配,老实说我真的不明白(这很令人沮丧)为什么返回的字符串内部 select
select to_char((sys_date - 1 / (24 * 60)), 'DD/MM/YYYY HH24:MI:SS') from dual;
returns 2014 年 3 月 19 日 23:59:00。
非常感谢任何帮助或建议:)
谢谢!
到最后一分钟插入的 select 行:
select *
from my_table
where inserted_date > sysdate-1/(24*60);
(假设您的 table 有一个名为 inserted_date
的 date
列,其中包含插入的日期和时间。)
SYSDATE
总是 returns 当前日期 和 时间,但是你在工具中看到的像SQL 另外,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
我需要删除最后一分钟插入的记录,我必须使用我的数据库中存在的特定系统日期,该日期实际上被截断了(select sys_date from dual returns 2014 年 3 月 20 日)。我尝试格式化日期以显示分钟,然后再次将其转换为日期,以便在最后一分钟使用 sys_date si sys_date-1 分钟插入 select 记录,但它没有看来我正朝着好的方向前进。例如:
select to_date(to_char((sys_date - 1 / (24 * 60)), 'DD/MM/YYYY HH24:MI:SS'),'DD/MM/YYYY HH24:MI:SS') from dual;
returns 19/3/2014 11:59:00 下午,这与我的格式掩码不匹配,老实说我真的不明白(这很令人沮丧)为什么返回的字符串内部 select
select to_char((sys_date - 1 / (24 * 60)), 'DD/MM/YYYY HH24:MI:SS') from dual;
returns 2014 年 3 月 19 日 23:59:00。 非常感谢任何帮助或建议:) 谢谢!
到最后一分钟插入的 select 行:
select *
from my_table
where inserted_date > sysdate-1/(24*60);
(假设您的 table 有一个名为 inserted_date
的 date
列,其中包含插入的日期和时间。)
SYSDATE
总是 returns 当前日期 和 时间,但是你在工具中看到的像SQL 另外,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