Discussion:
Jak "przekręcić" format daty?
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Michal Biek
2006-05-13 17:20:37 UTC
Permalink
Witam!

Potrzebuję zmienić format istniejących danych.
W kolumnie tb Accessa jest postać daty np.: 01012006, 02022006, 03032006,
04042006, 05052006 ...) na postać/format: 20060101, 20060202, 20060303,
04042006, 05052006 ...
Konwertuję na lewo i prawo ... i nie wychodzi!
Poproszę o pomoc, poradę lub podpowiedź jak można go "przekręcić".
10x.
Pozdr.
--
Czego Jaś się nie nauczy ...
Kuba N
2006-05-13 17:28:26 UTC
Permalink
format daty jest uzalezniony od tego jaki masz format w systemie
ustawiony
do wyswietlania formatu daty sluzy funcja format
w VBA format(data, "yyyymmdd")
na formularzach/raportach format(data, "rrrrmmdd")
Michal Biek
2006-05-13 19:39:49 UTC
Permalink
Post by Kuba N
format daty jest uzalezniony od tego jaki masz format w systemie
ustawiony
do wyswietlania formatu daty sluzy funcja format
w VBA format(data, "yyyymmdd")
na formularzach/raportach format(data, "rrrrmmdd")
Nie rozumiemy sie:-)
Nie chodzi o ustawienie systemu. Tylko o konwersje/zmiane ustawionego
formatu daty w polach danej kolumny w tabeli czyli mam format 01012006
(ddmmrrrr), a chce zamienic/zmienic w kolumnie (tej samej) tabeli na
20060101 (ddmmrrrr). Zmiana formatu we wlasciwosciach format "rrrrmmdd" nie
zalatwia(la) sprawy w tym przypadku.
Ale thx za zainteresowanie ...
Next tips ...?!
--
... tego Jan nie bedzie umial.
Michal Biek
2006-05-13 19:57:20 UTC
Permalink
Post by Kuba N
format daty jest uzalezniony od tego jaki masz format w systemie
ustawiony
do wyswietlania formatu daty sluzy funcja format
w VBA format(data, "yyyymmdd")
na formularzach/raportach format(data, "rrrrmmdd")
Nie rozumiemy sie:-)
Nie chodzi o ustawienie systemu. Tylko o konwersje/zmiane ustawionego
formatu daty w polach danej kolumny w tabeli czyli mam format 01012006
(ddmmrrrr), a chce zamienic/zmienic w kolumnie (tej samej) tabeli na
20060101 (rrrrmmdd). Zmiana formatu we wlasciwosciach format "rrrrmmdd" nie
zalatwia(la) sprawy w tym przypadku.
Ale thx za zainteresowanie ...
Next tips ...?!
--
... tego Jan nie bedzie umial.
Przemyslaw Rachwal
2006-05-13 21:07:24 UTC
Permalink
Post by Michal Biek
Post by Kuba N
format daty jest uzalezniony od tego jaki masz format w systemie
ustawiony
do wyswietlania formatu daty sluzy funcja format
w VBA format(data, "yyyymmdd")
na formularzach/raportach format(data, "rrrrmmdd")
Nie rozumiemy sie:-)
Nie chodzi o ustawienie systemu. Tylko o konwersje/zmiane ustawionego
formatu daty w polach danej kolumny w tabeli czyli mam format 01012006
(ddmmrrrr), a chce zamienic/zmienic w kolumnie (tej samej) tabeli na
20060101 (rrrrmmdd). Zmiana formatu we wlasciwosciach format
"rrrrmmdd" nie zalatwia(la) sprawy w tym przypadku.
Ale thx za zainteresowanie ...
Next tips ...?!
[data] - to nasza data

(right([data];4) & left([data];4))

cos takiego w kwerendzie aktualizujacej pole DATA
Michal Biek
2006-05-13 21:56:52 UTC
Permalink
Post by Przemyslaw Rachwal
Post by Michal Biek
Post by Kuba N
format daty jest uzalezniony od tego jaki masz format w systemie
ustawiony
do wyswietlania formatu daty sluzy funcja format
w VBA format(data, "yyyymmdd")
na formularzach/raportach format(data, "rrrrmmdd")
Nie rozumiemy sie:-)
Nie chodzi o ustawienie systemu. Tylko o konwersje/zmiane ustawionego
formatu daty w polach danej kolumny w tabeli czyli mam format 01012006
(ddmmrrrr), a chce zamienic/zmienic w kolumnie (tej samej) tabeli na
20060101 (rrrrmmdd). Zmiana formatu we wlasciwosciach format
"rrrrmmdd" nie zalatwia(la) sprawy w tym przypadku.
Ale thx za zainteresowanie ...
Next tips ...?!
[data] - to nasza data
(right([data];4) & left([data];4))
cos takiego w kwerendzie aktualizujacej pole DATA
Zrobilem kwerende na kolumne DATA z inkryminowanej tabeli.
Wpisalem kod jw. w [kryteria] i nie dziala ;-(
BTW 4 w prawo i 4 w lewo to wychodzi mi (teoretycznie:-) z 13052006 takie
cós: 20061305 ... a ja potrzebuje 20060513.
Przemyslaw Rachwal
2006-05-13 21:59:38 UTC
Permalink
Post by Michal Biek
Post by Przemyslaw Rachwal
Post by Michal Biek
Post by Kuba N
format daty jest uzalezniony od tego jaki masz format w systemie
ustawiony
do wyswietlania formatu daty sluzy funcja format
w VBA format(data, "yyyymmdd")
na formularzach/raportach format(data, "rrrrmmdd")
Nie rozumiemy sie:-)
Nie chodzi o ustawienie systemu. Tylko o konwersje/zmiane
ustawionego formatu daty w polach danej kolumny w tabeli czyli mam
format 01012006 (ddmmrrrr), a chce zamienic/zmienic w kolumnie (tej
samej) tabeli na 20060101 (rrrrmmdd). Zmiana formatu we
wlasciwosciach format "rrrrmmdd" nie zalatwia(la) sprawy w tym
przypadku. Ale thx za zainteresowanie ...
Next tips ...?!
[data] - to nasza data
(right([data];4) & left([data];4))
cos takiego w kwerendzie aktualizujacej pole DATA
Zrobilem kwerende na kolumne DATA z inkryminowanej tabeli.
Wpisalem kod jw. w [kryteria] i nie dziala ;-(
BTW 4 w prawo i 4 w lewo to wychodzi mi (teoretycznie:-) z 13052006
takie cós: 20061305 ... a ja potrzebuje 20060513.
(right([data];4) & mid([data];3;2)&left([data];2))
Michal Biek
2006-05-13 22:19:16 UTC
Permalink
Przemyslaw Rachwal log:
[...]
Post by Przemyslaw Rachwal
(right([data];4) & mid([data];3;2)&left([data];2))
Gdzie mam to wpisac w kwerendzie?
Jak wpisuje do kryterium kolumny (w kwerendzie) Access wola o wprowadzenie
danej dla [Data].
Nie chce ... potrzebuje automat konwersje!
Karol MARCHEWKA
2006-05-14 06:35:57 UTC
Permalink
Post by Michal Biek
Gdzie mam to wpisac w kwerendzie?
Jak wpisuje do kryterium kolumny (w kwerendzie) Access wola o
wprowadzenie danej dla [Data].
Nie chce ... potrzebuje automat konwersje!
Proste jak budowa cepa :-)
Primo - z menu wybierz Kwerenda wybierz polecenie Kwerenda aktualizujące
Secondo - Pole wybierz Data, a Aktualizacja do wpisz (right([data];4) & mid([data];3;2)&left([data];2))

Pozostaje jeszcze menu Kwerenda i Uruchom!
Enjoy
--
Pozdrawiam
Karol MARCHEWKA

www.marchewka.za.pl
Jeżeli piszesz na priv z adresu email wytnij tekst "-WYTNIJ-TO-"
Przemys³aw Rachwa³
2006-05-14 18:23:15 UTC
Permalink
Post by Karol MARCHEWKA
Post by Michal Biek
Gdzie mam to wpisac w kwerendzie?
Jak wpisuje do kryterium kolumny (w kwerendzie) Access wola o
wprowadzenie danej dla [Data].
Nie chce ... potrzebuje automat konwersje!
Proste jak budowa cepa :-)
Primo - z menu wybierz Kwerenda wybierz polecenie Kwerenda
aktualizujące Secondo - Pole wybierz Data, a Aktualizacja do wpisz
(right([data];4)
& mid([data];3;2)&left([data];2))
Pozostaje jeszcze menu Kwerenda i Uruchom!
dzięki że uświadomiłeś pana :)
witek
2006-05-13 21:34:37 UTC
Permalink
Post by Michal Biek
Nie chodzi o ustawienie systemu. Tylko o konwersje/zmiane ustawionego
formatu daty w polach danej kolumny w tabeli czyli mam format 01012006
(ddmmrrrr), a chce zamienic/zmienic w kolumnie (tej samej) tabeli na
20060101 (rrrrmmdd). Zmiana formatu we wlasciwosciach format "rrrrmmdd" nie
zalatwia(la) sprawy w tym przypadku.
Czy aby na pewno mówimy o datach, czy o stringach?
Jakos mam dziwne wrazenie, ze trzymasz informacje o dacie w postaci danych
tekstowych.
Jesli tak, to mozesz je sobie "przekonwertowac" np tak:

UPDATE tabelazdata SET Kolumnazdata = Mid([Kolumnazdata],5,4) &
Mid([Kolumnazdata],3,2) & Mid([Kolumnazdata],1,2);

Jesli jednak sa to dane Data/Godzina to co ty chcesz konwertowac? Dane i tak
sa przechowywane jako liczby, mozesz tylko wplywac na format ich
prezentacji, na przyklad w kwerendach czy formularzach uzywajac
Format([Kolumnazdata];"rrrrmmdd") lub dowolnego innego.
--
Pozdrawiam
Witek
Michal Biek
2006-05-13 22:08:34 UTC
Permalink
Post by witek
Post by Michal Biek
Nie chodzi o ustawienie systemu. Tylko o konwersje/zmiane ustawionego
formatu daty w polach danej kolumny w tabeli czyli mam format 01012006
(ddmmrrrr), a chce zamienic/zmienic w kolumnie (tej samej) tabeli na
20060101 (rrrrmmdd). Zmiana formatu we wlasciwosciach format "rrrrmmdd" nie
zalatwia(la) sprawy w tym przypadku.
Czy aby na pewno mówimy o datach, czy o stringach?
Jakos mam dziwne wrazenie, ze trzymasz informacje o dacie w postaci
danych tekstowych.
UPDATE tabelazdata SET Kolumnazdata = Mid([Kolumnazdata],5,4) &
Mid([Kolumnazdata],3,2) & Mid([Kolumnazdata],1,2);
Jesli jednak sa to dane Data/Godzina to co ty chcesz konwertowac? Dane i
tak sa przechowywane jako liczby, mozesz tylko wplywac na format ich
prezentacji, na przyklad w kwerendach czy formularzach uzywajac
Format([Kolumnazdata];"rrrrmmdd") lub dowolnego innego.
Sorry za dziwne wrażenie.
Dane 'Data' są faktycznie w typ danych [Text]. Wydawało mi się (default)
logiczne, że postać daty np. 13052006 może być zaprezentowana/rozpoznana
tylko jako typ danych [Text].
Twoje " UPDATE tabelazdata SET Kolumnazdata = Mid([Kolumnazdata],5,4) &
Mid([Kolumnazdata],3,2) & Mid([Kolumnazdata],1,2); "
wygląda na skuteczne tylko gdzie mam to wpisać, aby zaktualizować
tabelę/kolumnę?
10x.
witek
2006-05-14 08:20:42 UTC
Permalink
Post by Michal Biek
Twoje " UPDATE tabelazdata SET Kolumnazdata = Mid([Kolumnazdata],5,4) &
Mid([Kolumnazdata],3,2) & Mid([Kolumnazdata],1,2); "
wygląda na skuteczne tylko gdzie mam to wpisać, aby zaktualizować
tabelę/kolumnę?
Ano otwórz pustą kwerendę, wstaw to polecenie i wykonaj.
Dobrze, będę dokładniejszy.
1. W ramce OBIEKTY znajdź KWERENDY (powinny być pomiędzy TABELE a
FORMULARZE). Ustaw kursor na tym napisie (KWERENDY) i kliknij lewym
przyciskiem myszki. Powinno się zaznaczyć.
2. Nad ramką OBIEKTY powinieneś znaleźć przycisk NOWY (obok OTWÓRZ i
PROJEKTUJ). Ustaw kursor na tym przycisku (NOWY) i kliknij lewym
przyciskiem myszki. Powinno się otworzyć okienko NOWA KWERENDA. Umówmy się,
ze jeśli napiszę "zaznacz" lub "kliknij", to chodzi mi właśnie o ustawienie
kursora na jakimś elemencie i kliknięcie lewym przyciskiem myszki.
3. W okienku NOWA KWERENDA jest lista. ZAZNACZ opcję WIDOK PROJEKTU
(pierwsza z góry).
4. Kliknij (przypominam o umowie) przycisk OK. Powinno się pokazać okno z
projektem kwerendy i wyskakujące okienko pokazywanie tabeli.
5. W okienku POKAZYWANIE TABELI kliknij na przycisku ZAMKNIJ.
6. Teraz potrzebujemy przełączyć widok z siatki QBE na SQL. W górnej części
okna znajdziesz element zwany paskiem menu, są tam polecenia Plik, Edycja,
Widok i inne. Kliknij myszką na poleceniu WIDOK. Powinna rozwiną sie pod
spodem lista kolejnych dostępnych poleceń menu.
7. Kliknij na poleceniu WIDOK SQL. OK, dalej jesteśmy w trybie projektowania
kwerendy, tylko patrzymy na nią w nieco inny sposób.
8. Odszukaj na początku tego maila tekst umieszczony w cudzysłowach
zaczynający się od UPDATE.
9. Przepisz to zdanie w oknie projektowania kwerendy, usuwając uprzednio
istniejący tam wpis "SELECT;". Można to także wykonać metodą kopiuj-wklej,
ale nie chce mi się opisywać jak to zrobić.
10. Jeżeli przepisałeś to zdanie poprawnie, to ZASTĄP wyraz "tabelazdata"
nazwą Twojej tabeli w której chcesz dokonać tej "konwersji".
11. Zastąp także 4 wystąpienia słowa "Kolumnazdata" nazwą kolumny jaka ma
być aktualizowana.
12. Kliknij na czerwonym wykrzykniku i gotowe.

W razie niejasności pisz śmiało.
--
Pozdrawiam
Witek
Marcin Ziemian
2006-05-15 11:06:04 UTC
Permalink
Post by Michal Biek
Dane 'Data' są faktycznie w typ danych [Text]. Wydawało mi się (default)
logiczne, że postać daty np. 13052006 może być zaprezentowana/rozpoznana
tylko jako typ danych [Text].
IMO nie wiem, czy jest to najlepszy pomysł. Data powinna być przechowywana w
formacie datowym, a nie tekstowym. Zauważ, że teraz masz problem ze zmianą
reprezentacji daty i musisz kombinować skomplikowane funkcje, żeby sobie tę
reprezentację zmienić/wyświetlić. Natomiast gdybyś trzymał dane w postaci
daty, to wystarczy prosta funkcja format(jakas_wartosc;"format-przez-ciebie-
chciany") i masz z głowy :) Podobnie, gdybyś musiał wykonać jakieś operacje z
wyliczeń różnic dat: DateDiff(Data1, Data2, interwał, vbUseSystem...) i po
krzyku, a u Ciebie?

Przemyśl to ;) Jeszcze nic straconego - zawsze możesz zaimportować Twoje dane
do kolumny o typie daty :)

Pozdro
--
M.Z.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Michal Biek
2006-05-15 17:49:11 UTC
Permalink
Post by Marcin Ziemian
Post by Michal Biek
Dane 'Data' są faktycznie w typ danych [Text]. Wydawało mi się (default)
logiczne, że postać daty np. 13052006 może być zaprezentowana/rozpoznana
tylko jako typ danych [Text].
IMO nie wiem, czy jest to najlepszy pomysł. Data powinna być
przechowywana w formacie datowym, a nie tekstowym. Zauważ, że teraz
masz problem ze zmianą reprezentacji daty i musisz kombinować
skomplikowane funkcje, żeby sobie tę reprezentację zmienić/wyświetlić.
Tabela jest "obca" tzn. pochodzi z niepodległej (mi:-), bieżącej BD i format
nie pasuje do tabeli z (podobnego) archiwum DB czyli 3 tabele mają format
Data/Godz (Data krótka), a ta jedna [Text] w formacie opisanym wcześniej.
Zatem IMHO poszukiwane rozwiązanie wydaje mi się praktyczne i odpowiednie.
Post by Marcin Ziemian
Natomiast gdybyś trzymał dane w postaci daty, to wystarczy prosta
funkcja format(jakas_wartosc;"format-przez-ciebie- chciany") i masz z
głowy :) Podobnie, gdybyś musiał wykonać jakieś operacje z wyliczeń
różnic dat: DateDiff(Data1, Data2, interwał, vbUseSystem...) i po
krzyku, a u Ciebie? Przemyśl to ;) Jeszcze nic straconego - zawsze
możesz zaimportować Twoje dane do kolumny o typie daty :)
A jak mogę zaimportować pierwotne dane do kolumny o typie daty?, aby było
"po krzyku" ...!;-)
BTW po UPDATE ... i format @@@@-@@-@@ mam m.in. to co mi potrzebne.

Pozdr.
--
Poznaj - Naucz się - Wykorzystaj!
Przemys³aw Rachwa³
2006-05-15 18:18:13 UTC
Permalink
Post by Marcin Ziemian
Post by Michal Biek
Dane 'Data' są faktycznie w typ danych [Text]. Wydawało mi się
(default) logiczne, że postać daty np. 13052006 może być
zaprezentowana/rozpoznana tylko jako typ danych [Text].
IMO nie wiem, czy jest to najlepszy pomysł. Data powinna być
przechowywana w formacie datowym, a nie tekstowym. Zauważ, że teraz
masz problem ze zmianą reprezentacji daty i musisz kombinować
skomplikowane funkcje, żeby sobie tę reprezentację
zmienić/wyświetlić. Natomiast gdybyś trzymał dane w postaci daty, to
wystarczy prosta funkcja format(jakas_wartosc;"format-przez-ciebie-
chciany") i masz z głowy :) Podobnie, gdybyś musiał wykonać jakieś
operacje z wyliczeń różnic dat: DateDiff(Data1, Data2, interwał,
vbUseSystem...) i po krzyku, a u Ciebie?
Przemyśl to ;) Jeszcze nic straconego - zawsze możesz zaimportować
Twoje dane do kolumny o typie daty :)
przy agregacji nmiesięcznej wieluset tysięcy rekordów z polem Timestamp to
obróbka skrawaniem, lepszy efekt daje dodanie dobranego i zaindeksowanego
klucza tekstowego reprezentującego dany przedział czasowy

Michal Biek
2006-05-14 08:22:41 UTC
Permalink
Post by Michal Biek
Witam!
Potrzebuję zmienić format istniejących danych.
[...]

Zamykam niniejszy wątek z zadowoleniem, bo pomoc, porady, podpowiedzi
obecnych w tym wątku inż. ds msaccess pomogły mi rozwiązać problem i
oszczędzić czas na studiowanie sprawy "prostszej od budowy cepa" ;-)
1. z porady "witka " skorzystałem początkowo używając SQL standart za pomocą
DBToura. Efekt oczekiwany otrzymałem. 10x "witek"!
2. podpowiedź od "Karol Marchewka" wykorzystałem w MS Access ([data] musi
być właściwą nazwą pola aktualizowanej kolumny). Wynik aktualizacji
oczekiwany. 10x "KM"!
...
pozostałym również należne thx za zainteresowanie oraz mniej więcej
skuteczne tipsy.
Pozdr.
--
THE _from the ordinary ...
BIG _to the extra ordinary ...
ONE _and eveything in between!
Loading...