eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingróżnica dat C# vs PL/SQLRe: różnica dat C# vs PL/SQL
  • Data: 2009-10-27 08:52:50
    Temat: Re: różnica dat C# vs PL/SQL
    Od: Paweł Kierski <n...@p...net> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Jakub Owczarski wrote:
    > Witam.
    > Mam pewną bazę gdzie data trzymana jest w polu number. Po szybkim
    > sprawdzeniu (w oracle) wyszło mi, że jest to liczba dni od 0001-01-02.
    > Teraz potrzebowałem też pomieszać w tym na poziomie C# no i okazuje
    > się, że dostaję różne wyniki.
    > Testuję w oracle:
    > select to_date('2009-10-25','yyyy-mm-dd') - to_date('0001-01-02','yyyy-
    > mm-dd') ts from dual
    > dostaję ts = 733705
    >
    > w C#:
    > TimeSpan ts = new TimeSpan();
    > ts = new DateTime(2009, 10, 25).Date - new DateTime(1, 1, 2).Date;
    > dostaję ts = 733703
    >
    > Czyli dwa dni różnicy. Ma ktoś pomysł o co tu chodzi? Skąd się biora
    > te dwa dni różnicy?

    Bo to niejawnie wartości z po za zakresu. Jeśli nie znormalizujesz dat
    np. do dni juliańskich, to nic z tego nie będzie. Równie dobrze możesz
    porównywć daty z kalendarza Majów i prawosławnego.

    Po drodze było co najmniej przejście z kalendarza juliańskiego na
    gregoriański, które "zniknęło" kilka dni. Na dodatek ekstrapolując
    wstecz regułę wyznaczania dni przestępnych z kalendarza gregoriańskiego
    przed reformę masz dodatkowe kilka dni różnicy (np. juliański 1200 był
    przestępny, choć wg reguły gregoriańskiej nie byłby).

    --
    Paweł Kierski
    n...@p...net

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: