Strona 1 z 1

Pesel - obliczenia

: sob gru 27, 2014 9:24 pm
autor: Piotrekbil
Witam.
Stworzyłem tabelę w których jednym z pól jest nr pesel.
Chciałbym, żeby w kwerendzie wykonane były obliczenia z nim związane, czyli:

Z nr pesel wyciągnięcie daty urodzenia
data dzisiejsza - data urodzenia = wiek
przedostatnia liczba nr pesel określa płeć osoby= Kobieta Mężczyzna
Idealnym przydałem dla mnie jest wątek https://forum.openoffice.org/pl/forum/v ... esel#p9955 niestety dotyczący programu Calc.



Pozdrawiam
Piotr

Re: Pesel - obliczenia

: pn gru 29, 2014 12:10 am
autor: Jan_J
wartość PESEL winna być tekstem z kontrolą poprawności -- bo forma, a nie wartość, jest istotna.

W arkuszu kalkulacyjnym do pobierania elemetów daty użyj funkcji MID (Fragment.tekstu), do zamiany na liczbę: funkcji VALUE (WARTOŚĆ); do składania roku, niesiąca i dnia w datę: funkcji DATE (DATA); do obliczania wieku w dniach -- różnicy dat, a w latach: różnicy "roków" urodzenia z warunkową modyfikacją o 1 w niektórych sytuacjach. Oczywiście cyfrę kontrolną odpowiedzialną za płeć też wydłubiesz MID-em.

W bazie SQL-owej będą potrzebne analogiczne funkcje SQL. Niestety, jeśli jest to baza wbudowana tj. HSQL 1.8.x, to operacje na datach są w niej mocno okrojone. W przypadku prawdziwej bazy spełniającej SQL-owe standardy, rzecz się prawie-że przenosi: potrzebujesz pobierania fragmentu tekstu (SUBSTR), konwersji str->DATE (date(tekst) i odejmowania dat.

Re: Pesel - obliczenia

: pn gru 29, 2014 12:48 am
autor: Astur
Jan_J pisze:wartość PESEL winna być tekstem z kontrolą poprawności -- bo forma, a nie wartość, jest istotna.
Metoda kontroli numeru PESEL sprowadza się do obliczenia wyrażenia
a+3b+7c+9d+e+3f+7g+9h+i+3j+k
(gdzie litery oznaczają kolejne cyfry numeru), a następnie sprawdzenia czy reszta z dzielenia przez 10 jest zerem. Jeśli ostatnia cyfra otrzymanej liczby jest zerem, to numer PESEL jest poprawny, w przeciwnym razie numer jest błędny.
Na podstawie Wikipedii

Re: Pesel - obliczenia

: pn gru 29, 2014 2:03 am
autor: Jan_J
OK, miałem na myśli pożądaną niepodatność wartości PESEL na ustawianie formatu liczbowego użytkownika, jak początkowe zero, miejsca dziesiętne albo data. Tekst jest bezpieczniejszy. Także w przypadku SQL, choć tu pola do niezamierzonych nieporozumień jest mniej.