Avatar billede fireheart Nybegynder
30. april 2009 - 10:39 Der er 3 kommentarer

At importere dato-tid i US-format til Access

Jeg har en tekstfil med data udtrukket fra en amerikansk database. Denne tekstfil indeholder et dato-klokkeslet i US-format:

mm/dd/yyyy hh:mm:ss AM/PM

eks. den 4. januar 2009 kl. 13:24:22
vises som
01/04/2009 01:24:22 PM

Hvordan importerer jeg dette datafelt som dato/klokkeslet i en MS Access 2003 tabel? (Jeg er egentlig ligeglad med, hvilket datoformat det lander i, bare jeg kan sortere korrekt på det.)
Avatar billede mugs Novice
30. april 2009 - 10:58 #1
Formater er fuldstændig ligegyldigt, det er jo blot den måde dine øjne ser data på skærmen. Uanset hvilket format du har, vil data blive lagret på din HD som et decimaltal:

01 JAN 1900 Kl 00:00 = 1
01 JAN 1900 Kl 12:00 = 1,5

og så fremdeles. Så sorteringen burde blive korrekt efter dato- Såfremt Access imnporterer som et tekstfelt, kan du importere til en temp tabel og derefter sende data videre til den endelige tabel med de korrekte datatyper.
Avatar billede fireheart Nybegynder
30. april 2009 - 12:20 #2
Desværre,

Feltet kan importeres som tesktfelt, og derefter hældes over i et datofelt, men så sker der en typekonverteringsfejl, ligesom når man importerer det direkte som datofelt.

Jeg kan godt lave en Cdate() på tekstfeltet, men så bliver alle tider mellem kl 00 og 12, idet converteringen ikke tager højde for AM/PM betegnelsen.

Jeg har lavet en query, som splitter tekstfeltet ad, ændrer time-tallet til 24timers format og samler det i et nyt tekstfelt uden AM/PM betegnelsen. Herefter kan jeg med Cdate() hælde det over i et felt af typen dato.

Men er der ikke en nemmere måde? Kan man ikke gøre det direkte i importspecifikationen? AM/PM er jo trods alt et meget almindelig anvendt format (og Access kan godt finde ud af at konvereter MDÅ til DMÅ, det går helt af sig selv).

Her er første linie i mine importdata (tabdelimited):

Email Address    Date Subscribed
info@reble.com    04/27/2009 02:47:00 PM

Denne datotekst skulle gerne importeres som '27-04-2009 14:47:00'


/Klaus
Avatar billede Slettet bruger
01. maj 2009 - 08:28 #3
Gå ind i avanceret i importdeklariotion wizarden -  her er det muligt at angive felttyper. Kolonnerne i min access 2000 er klistret helt sammen, så man skal vide at det er muligt at trække kolonner frem.
Sæt typen til tekst. Når tabellen er importeret - så opret en ny kolonne og opdater vha. en selvskevet funktion: 'update tabel set <newfield>=fix(<feltnavn for datosomtekst>) - slet den gamle kolonne og omdøb evt.

Så er det lige fix - eksperimenter! - måske virker det helt uden funktion: set <newfield>=<feltnavn for datosomtekst>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester