0

我在 Apex 中遇到日期格式问题。在我的数据库中,日期格式为“29-05-1994”(DD-MM-YYYY),相同的格式显示在我的顶点页面上,但不在我的会话状态(DD-MON-YY)中。通过一个程序,我尝试计算某人的年龄。结果是-79.61。这不正确,它与格式有关。当我在程序中将格式更改为 DD-MON-YYYY 时,我会得到:2000 东西。还是不正确。有谁知道如何解决这个格式问题?

这是我的程序的一部分:

> v_datum date := to_date(V('P7_GEBOORTEDATUM'), 'DD-MON-YY');
> v_leeftijd number(10,2);
> 
> -- check my age (in years) 
> v_leeftijd := (sysdate - v_datum)/365;
4

1 回答 1

0

日期格式是 Oracle 中的首选项。也就是说,您可以定义将被任何客户端首选项覆盖的服务器格式(默认)。ie server 可以设置为 mm/dd/yy --> application server 可以设置为使用 dd-mm-rr (优先) --> client 可以设置为 dd.mm.yyyy (优先)

最好将日期视为字符串并来回转换它们,而不是采用日期格式。

APEX 中设置的日期格式

如果值低于或超过世纪之交,切勿使用 YY。即低于2000及以上。如果值低于 1950 或以上,切勿使用 RR。

最好使用 YYYY 并保证有正确的年份。

这样您就可以调用 to_date(v('v7_geboortedatum'),'dd.mm.yyyy') 并确保您使用正确的日期。

轮 ( (sysdate - to_date(v('v7_geboortedatum'),'dd.mm.yyyy')) / 365, 2)

于 2014-11-11T01:22:09.223 回答