数据:
Field1 Field2 BEGIN_DT END_DT
R1 R2 10012015 04082018
R1 R2 04092018 09302018
R1 R2 10012018 12319999
DATES是VARCHAR2格式的,我已经使用:
BEGIN_DT = to_char(to_date(BEGIN_DT,'MMDDYY'), 'MM/DD/YYYY');
END_DT to_char(to_date(END_DT,'MMDDYY'), 'MM/DD/YYYY');
我的问题是,我试图找到最早的BEGIN_DT(最小)和最新的END_DT(最大)。
当我在VIEW中输入以下内容时,我得不到最早的BEGIN_DT
min(begin_dt),
max(end_dt),
我得到了04/09/2018,这不是最早的BEGIN_DT
但是当我将其输入到视图中时,会得到最小日期,但格式错误
min(to_char(to_date(begin_dt, 'MM/DD/YYYY'))),
max(end_dt),
我得到:01-OCT-15,而不是2015年10月1日
如何找到MM / DD / YYYY格式正确的日期的最小值/最大值?预先感谢您的帮助。
答案 0 :(得分:0)
您可以尝试以下一种方法:
min(to_char(to_date(begin_dt, 'MMDDYYYY'), 'MM/DD/YYYY'))
或这个:
to_char(min(to_date(begin_dt, 'MMDDYYYY')), 'MM/DD/YYYY')
将日期转换为字符串时,日期的默认模式为01-OCT-15,因此您必须在语法中包括自己的模式。
答案 1 :(得分:0)
尝试这个:
select to_char(begin_dt, ‘mm/dd/yyyy’) as begin_dt,
to_char(end_dt, ‘mm/dd/yyyy’) as end_dt
from (select min(to_date(begin_dt, ‘mmddyyyy’)) as begin_dt,
max(to_date(end_dt, ‘mmddyyyy’)) as end_dt
from table)