Программирование в Галактике

From Galaktikaerp

Contents

Полезные функции

Преобразование даты в формате Галактики в нормальный формат даты

В 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
 
Personal tools