From Galaktikaerp
(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)
Полезные функции
Преобразование даты в формате Галактики в нормальный формат даты
В ORACLE на PL/SQL
CREATE OR REPLACE FUNCTION galdate2date(p_galdate number)
RETURN DATE IS
galdate number := p_galdate;
result DATE := sysdate;
d integer ;
m integer ;
y integer ;
BEGIN
y := trunc (galdate / 65535);
galdate := MOD(galdate,65536);
m := trunc(galdate / 255);
galdate := MOD(galdate,256);
d := galdate;
result := to_date(to_char(y,'0009') || to_char(m,'09') || to_char(d,'09'),'yyyymmdd');
return result;
END galdate2date;
grant all on galdate2date to public;
В PERL
############################################################################
sub galdate2str
############################################################################
{
local ($galdate) = @_;
local ($y,$m,$d) = (0,0,0);
$y=$galdate & 0xFFFF0000;
$y=$y>>16;
$y=sprintf("%04u",$y);
$m=$galdate & 0x0000FF00;
$m=$m>>8;
$m=sprintf("%02u",$m);
$d=$galdate & 0x000000FF;
$d=$d;
$d=sprintf("%02u",$d);
return $d.'/'.$m.'/'.$y;
} ##galdate2str