önskar ställa en fråga omkring sekelskiftet
Sekelskiftet
Som du säkert läst i datapressen så är mänsklighetens nästa stora problem år 2000 och hur våra databaser och datasystem ska överleva sekelskiftet.
Likt alla andra stora problem sönderfaller detta vid närmare betraktande i flera mindre problem.
För det första lär det finnas en bugg i bioset på äldre PC-ar som gör att när man startar dem den första januari 2000 kommer datumet ( i klockan) att ha backat till 1sta jan 1980 Det ska gå att ställa om klockan till 2000 men efter nästa boot så återvänder den envist till 1980. Anledningen till detta påstås vara att man använt för få bit-ar till att lagra datum när PC-n är avslagen. Om allt detta är sant skulle det vara en jämn 2potens dagar mellan dessa datum vilket inte stämmer. Troligen är det så att vissa (gamla) PC-ar kommer att backa 32K dagar någon gång år 2000.
För det andra så får man problem om man lagrar datum i klartext med 2 årtalssiffror. Det går bra att lagra 000101 men när man ska jämföra det med 991231 så blir det mindre vilket tolkas som att första januari 2000 är tidigare än sista december 1999!
I en modern databasmiljö som UniVerse lagrar man datum som antal dagar efter den sista december 1967 som alltså är dag 0 och undviker därmed problemet. Ett system skrivet UniVerse kan naturligtvis få problem ändå. T.ex kan man ha definierat en variabel eller I-deskriptor bokföringsår som 2-ställigt årtal. Om man sen sorterar på bokföringsår kommer 2000 före 1999 eller om man gör ett urval på bokföringsår < 01 så komer inte 98,99 med och omvänt om man väljer bokföringsår > 98 så kommer inte 2000 med. Senare under 2000-talet när man vill köra år 2001 och anger bokföringsår > 00 så kommer allt utom år 2000 med alltså hela 1900-talet. I-deskriptorer och variabler som är årtal bör alltså ändras till att vara 4-ställiga om de används till urval eller som sorteringsnycklar.
För det tredje kan man få problem att ange vilket sekel det gäller när man matar in ett datum om det bara finns 2 årtalssiffror. Om man använt UniVerse datumkonvertering slipper man problem, år 30-99 tolkas nämligen som nittonhundratalet och 00-29 som 20-hundratalet.
Dessutom är det vanligen så att datumfält är åtta tecken långa för att kunna presentera datum prydligt med avskiljare ( t.ex. 96-12-13 ) och då kan man ju skriva 19181213 i fältet (som sen visas som 18-12-13).
Varför är dag 1 den första januari 1968?
Det påstås att Richard Pick fick igång det första PICK-systemet den dagen och att alla system i PICK-familjen ärvt detta startddatum. Säkert är att UniVerse mfl har ärvt sin dag 1 från Picks system, men Richard Pick hade ett bättre skäl för valet av datum. För att göra alla konverteringsrutiner så enkla som möjligt ska dag 1 vara den första januari ett skottår och samtidigt vara den första dagen i en vecka alltså en måndag. En av de dagar som uppfyller villkoren är just 1968-01-01.
Vad är slutsatsen ?
Man bör välja produkter som inte har problem med övergång till år 2000, till exempel UniVerse samt anlita företag som åtminstone löser de problem som är lätta att förutse redan vid utvecklingen av applikationerna. Ett sekelskifte kan väl ändå inte komma som någon överrasking ens för våra största konsultbolag?
Hur löser er programvaruleverantör problemet? Har de mage att ta betalt av dig som har underhåll på produkterna?
Om Ni ändå har kommit fel, kan vi hjälpa er med korrigeringar för år 2000.
Hur är det med nästa problem, EU-valutan ?