下面是我的示例表和预期的输出以及我返回的相应查询。当我试图从PROV表中获取最早的日期记录时,我正在遇到DATE FORMAT ISSUES。如果不清楚,请告诉我
select *
from beau_prov beau
join provi prov
on trim(beau.no) = trim(prov.prov_no)
where prov.ins_dt =
( select min(ins_dt)
from provi prov
where trim(beau.no) = trim(prov.no)
and beau.year = to_char(to_date(ins_dt, 'MM/DD/YYYY HH:MI:SS PM', 'YYYY'), 'YYYY') )
BEAU
----------------------
NAME | NO | YEAR |
----------------------
CAR | 1234 | 2013 |
AUTO | 4356 | 2013 |
PROV
-----------------------------------------------
NO |NUMBER | NAME | INS_DT |
-----------------------------------------------
1234 | 987 | ZZ | 7/13/2013 11:36:05 PM |
1234 | 456 | ZZ | 12/31/2013 10:34:45 PM |
RESULT
---------------------------------------
NAME | NO | YEAR | NUMBER | NAME |
---------------------------------------
CAR | 1234 | 2013 | 987 | ZZ |
答案 0 :(得分:0)
如果INS_DT
是Oracle date
,那么您只需将其插入另一个date
列即可。
您看到的格式由客户端应用程序应用,不属于date
值本身。
如果它以字符串形式提供给您的程序,则需要使用date
将其转换为to_date(ins_dt,'DD/MM/YYYY HH:MI:SS PM')
。
如果INS_DT
是Oracle date
且BEAU_PROV.YEAR
是包含4位数年份的字符串,那么您可以使用以下方式加入它们:
and beau.year = to_char(ins_dt,'YYYY')