mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Konwersja daty Pervasive https://forum.mix-soft.pl/viewtopic.php?f=15&t=4021 |
Strona 1 z 1 |
Autor: | kradzik [ 2012-06-18, 21:08 ] |
Tytuł: | Konwersja daty Pervasive |
Witam, poszukuję informacji jak skonwertować datę dualną w bazie w wersji Btrieve z tabeli WARTOSCI_KADR (http://www.mix-soft.pl/wiedza/opiskd200 ... TOSCI_KADR) Wiem że aby uzyskać aktualna datę należy obliczyć różnice miedzy "9999-12-31" a datą przechowywaną w konkretnym rekordzie tabeli. Wszystko byłoby ok gdyby nie fakt, że w przypadku pobierania większej ilości danych (połączenie do bazy Pervasive - C#,PsqlConnection) otrzymuje komunikat o błędnym formacie daty (pierwsze kilkanaście rekordów przechodzi) Do pobrania daty wykorzystuję PsqlReader, który posiada metodę GetDateTime() jednak tak jak pisałem nie działa ona poprawnie, podczas pobierania danych juz samo proste zapytanie "select dual_poc from wartosci_kadr" wywala błąd (z poziomu c# - w pervasile jest ok). Zna ktoś sposób na pobranie wartości tej tabeli? Dodam że próbowałem prostej konwersji np. "select cast(dual_poc from as datetime) wartosci_kadr" jednak nie dało to oczekiwanego rezultatu. Przypuszczam że mogą istnieć jakieś nieznane mi metody konwersji? Z góry dziękuję za pomoc |
Autor: | rafal [ 2012-06-19, 11:14 ] |
Tytuł: | Re: Konwersja daty Pervasive |
Kod: select CAST( CAST(CAST((9999-(dual_poc&(-65536))/65536) as INTEGER) as varchar(4))+'-'+ CAST(CAST((13-(dual_poc & 65280)/256) as INTEGER) as varchar(2))+'-'+ CAST(CAST((31-(dual_poc&255)) as INTEGER) as varchar(2)) as DATE) from "WARTOSCI_KADR" |
Autor: | kradzik [ 2012-06-20, 22:10 ] |
Tytuł: | Re: Konwersja daty Pervasive |
Ta konwersja działała u Ciebie? jak próbuje odpalić zapytanie w pervasile to niestety nie przechodzi. Mam jeszcze jeden problem. Ciężko znaleźć informacje na ten temat na necie. W Kadrach i Płacach data rozpoczęcia umowy oraz data jej końca skonwertowana jest to formatu DWORD (chyba unit 32 bitowy). Tak więc data jest przechowywana jako "integer" (jeśli kolumna typ_wartosci w tabeli wartosci_kadr ma wartość = -2 kolumna element przechowuje datę jako intager - format dword) W c# jest możliwość konwersji unit32 na datę jednak nie przynosi to rezultatu. Orientuje się ktoś jak wyciągnąć datę z tego formatu danych? |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |