Oracle - 获取当前日期格式

时间:2016-02-14 08:29:50

标签: sql oracle date truncate sysdate

我一直在想 - 我在系统上使用sysdate有很多用处,当它与我的日期列比较时,我必须使用trunc(sysdate),因为sysdate的格式是DD/MM/YYYY HH24:MI:SS

我查看互联网上的其他功能,以DD/MM/YYYY的格式返回当前日期,但没有运气,current_date , current_timestamp并且ETC也给了我小时格式..

在将索引日期列与当前日期进行比较时,我需要这样做以获得更好的性能。

那么,是否有人知道返回所需格式的系统函数?或绕过它的方法?

2 个答案:

答案 0 :(得分:2)

如果你的日期"列的类型为DATE,那么您不需要关注"格式"。您需要将trunc(column_name)与trunc(sysdate)进行比较。如果由于使用函数消除了索引的使用而导致严重的性能问题,则创建基于函数的索引。一个不太优雅的解决方案是

WHERE mydatecol> TRUNC(SYSDATE) 和mydatecol< trunc(sysdate +1)

您不想做的是将DATE的二进制概念与日期的字符串表示混淆。字符串只是一个字符串,您可以将其视为人类识别为数据,但对于计算机来说,“2016-02-14”#39;没有更多的意义而不是' hereisyoursign'。

答案 1 :(得分:-1)

您可以更改变量NLS_DATE_FORMAT。

ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY';

另见http://www.dba-oracle.com/t_nls_date_format.htm