tekstveld naar datum

Vraag & antwoord over FileMaker Pro 7-8, FileMaker Server 7-8 en FileMaker Mobile 7-8

tekstveld naar datum

Berichtdoor pjotter » 07 feb 2010 12:04

Kom net achter iets waar ik even geen antwoord op heb en wat ik nog niet ben tegen gekomen?
Ik heb een tekstveld wat ik importeer.
Als ik dat na import omzet naar een datum veld dan heb ik 2 verschillende uitkomsten.
1 als de tekst is opgemaakt als vb: 01/01/2008 dan krijg ik keurig datum 01-01-2008
2 als de tekst is opgemaakt als vb: 01-01-2008 dan krijg ik de datum 01-01-2007?
Ik gebruik voor omzetten van de tekst gewoon:
Date ( Middle ( datumtekst ; 3 ; 2 ); Left ( datumtekst; 2) ; Right ( datumtekst ; 4 ) )
Hoe kan het dat ik in voorbeeld 2 voor het jaartal 2007 krijg (laatste 4 laatste tekens zijn echt 2008?)
De export is een tekst veld omdat de datum ook als volgt kan worden weergegeven :01 jan 2008
pjotter
 
Berichten: 761
Geregistreerd op: 30 nov 2003 21:42

Re: tekstveld naar datum

Berichtdoor fmwebshop » 07 feb 2010 12:46

Date ( Middle ( filter(datumtekst;1234567890) ; 3 ; 2 ); Left ( datumtekst; 2) ; Right ( datumtekst ; 4 ) )


groet
Harry
Avatar gebruiker
fmwebshop
 
Berichten: 326
Geregistreerd op: 18 sep 2008 17:12
Woonplaats: St Dizier les Domaines

Re: tekstveld naar datum

Berichtdoor hbrendel » 07 feb 2010 13:00

Date ( Middle ( datumtekst ; 4 ; 2 ) ; Left ( datumtekst; 2 ) ; Right ( datumtekst ; 4 ) )

Overigens, dit werkt ook:

GetAsDate ( datumtekst )
Avatar gebruiker
hbrendel
 
Berichten: 408
Geregistreerd op: 25 jun 2004 14:21

Re: tekstveld naar datum

Berichtdoor pjotter » 07 feb 2010 16:34

Dat ik met een aangepaste formule er wel uit kom dat kan maar wat ik zo vreemd vindt is dat wanneer is xx/xx/xxxx neem als tekst en ik dit omzet ik wel het juiste jaartal krijg en bij xx-xx-xxxx het jaartal -1?
Ik heb een bestandje bijgevoegd omdat ik de beweegredenen niet ken waarom // een heel andere uitkomst heeft dan --?

Met get as date werkt het wel met // en met -- maar ik kan ook de tekst aangeleverd krijgen als: 1 jan 2008
vandaar dat ik die niet gebruikte. In de totale formule zit namelijk ook een stukje met case( jan =1 enz)
Je hebt niet de vereiste permissies om de aan dit bericht toegevoegde bestanden te zien.
pjotter
 
Berichten: 761
Geregistreerd op: 30 nov 2003 21:42

Re: tekstveld naar datum

Berichtdoor hbrendel » 07 feb 2010 17:03

Heb je mijn post eigenlijk wel gelezen?


4 i.p.v. 3
Avatar gebruiker
hbrendel
 
Berichten: 408
Geregistreerd op: 25 jun 2004 14:21

Re: tekstveld naar datum

Berichtdoor fmwebshop » 07 feb 2010 19:01

Bovenstaande oplossingen werken niet op alle systemen.
FM herkent jan-feb enz dan niet

Om de formule niet al te lang te maken heb ik een veld bijgemaakt.

gr
Harry
Je hebt niet de vereiste permissies om de aan dit bericht toegevoegde bestanden te zien.
Avatar gebruiker
fmwebshop
 
Berichten: 326
Geregistreerd op: 18 sep 2008 17:12
Woonplaats: St Dizier les Domaines

Re: tekstveld naar datum

Berichtdoor pjotter » 07 feb 2010 19:45

hbrendel schreef:Heb je mijn post eigenlijk wel gelezen?


4 i.p.v. 3

Jazeker heb dit ook geprobeerd,
`zie bijlage van twee jpg's
Je hebt niet de vereiste permissies om de aan dit bericht toegevoegde bestanden te zien.
pjotter
 
Berichten: 761
Geregistreerd op: 30 nov 2003 21:42

Re: tekstveld naar datum

Berichtdoor pjotter » 07 feb 2010 19:55

fmwebshop schreef:Bovenstaande oplossingen werken niet op alle systemen.
FM herkent jan-feb enz dan niet

Om de formule niet al te lang te maken heb ik een veld bijgemaakt.

gr
Harry

Dat omzetten is niet het probleem dat werkt op zich allemaal prima ik heb het ozetten van jan naar 1 gewoon in de formule geplaatst van date(mont,day,year). Ik kan alleen niet uitstaan dat ik niet weet waarom / als scheidings teken wel de juiste datum geeft en - niet. Als ik alleen het jaar neem (Right ( datumtekst ; 4)) dan krijg ik keurig het juiste jaartal. ALs ik vervolgens dit dit invoeg in de eerste datum omzetting dan krijg ik weer 1 jaar lager.
pjotter
 
Berichten: 761
Geregistreerd op: 30 nov 2003 21:42

Re: tekstveld naar datum

Berichtdoor hbrendel » 07 feb 2010 20:25

pjotter schreef:Ik kan alleen niet uitstaan dat ik niet weet waarom / als scheidings teken wel de juiste datum geeft en - niet.

Omdat delen niet hetzelfde is als aftrekken.

En dat komt allemaal door die 3 in Middle ( datumtekst ; 3 ; 2 ). Hiermee krijg je dus voor de maand "-0" of "/0". Aangezien de Date functie getallen verwacht probeert hij deze 'tekst' te interpreteren. Daarom moet het een 4 zijn. Dan krijg je "01" in beide gevallen, dat wordt dus maand 1.

Uiteraard werkt deze formule alleen wanneer de datumtekst in het formaat xx-xx-xxxx wordt gepresenteerd, evenals GetAsDate (). Filter je de niet numerieke karakters eruit, dan wordt het al helemaal onvoorspelbaar. 1-1-'08 zou ook kunnen.

In een goede datum omzettingsformule moet je al die uitzonderingen afvangen. Omdat je niet weet wie het allemaal gaat invoeren, is dat niet mogelijk. Ik heb het ooit gehad dat gebruikers invoerden: "ergens in februari vorig jaar" of "Eerste kerstdag 2005".

Zorg daarom dat datums in een datumveld worden ingevoerd. Wanneer het via een webformulier gebeurt, pas dan een validatie toe, die de gebruiker bij fouten opnieuw laat invoeren.
Avatar gebruiker
hbrendel
 
Berichten: 408
Geregistreerd op: 25 jun 2004 14:21

Re: tekstveld naar datum

Berichtdoor pjotter » 07 feb 2010 20:54

Kijk een duidelijke uitleg maar wel een vreemde voor me. dat-4 iets anders is dan /4 is logisch, dus tot zover duidelijk.
Ik zie ook dat de 3 dat effect heeft en dat de 4 de juiste uitkomst geeft maar dan is het nog steeds vreemd dat dus FM dit alleen bij de - doet?
Delen, vermenigvuldigen of optellen heeft geen enkel effect.
pjotter
 
Berichten: 761
Geregistreerd op: 30 nov 2003 21:42


Keer terug naar FileMaker 7 en 8



Wie is er online

Gebruikers op dit forum: SuperWimmie en 1 gast