Gerard Exis Posted March 12, 2015 Posted March 12, 2015 Beste mensen, krijg van een koeriersdienst de overzichten binnen, echter in een veld staat de datum en tijd, hoe krijg ik de datum hieruit? Deze heb ik nodig ivm een berekening. ik krijg het als volgt binnen: 02/03/15 10:41 Quote
0 rmw Posted March 12, 2015 Posted March 12, 2015 Aangenomen - dat de datum in het formaat MM/DD/YY HH:MM is - dat het altijd twee cijfers voor dag, maand en jaar heeft - dat er geen datums voor 1-1-2000 zullen voorkomen - dat het in het veld Importdatum staat Dan kan het als volgt: Let ( [ xDag = Middle ( Importdatum ; 4 ; 2 ) ; xMaand = Middle ( Importdatum ; 1 ; 2 ) ; xJaar = 2000 + Middle ( Importdatum ; 7 ; 2 ) ] ; Date ( xMaand ; xDag ; xJaar ) ) Syntax check laat ik aan u rmw Quote
0 Keeshart Posted March 12, 2015 Posted March 12, 2015 Vilgens mij gewoon met getasdate() functie Quote
0 menno Posted March 12, 2015 Posted March 12, 2015 Vilgens mij gewoon met getasdate() functie GetAsDate ( "02/03/15 10:41" ) levert op een nederlands ingesteld systeem 2 maart 2015 op als datum, op een US ingesteld systeem levert diezelfde formule 3 februari 2015 op .... de werkwijze van RMW geeft exacte controle en is de juiste Quote
0 Gerard Exis Posted March 13, 2015 Author Posted March 13, 2015 mijn dank, ik ga ermee aan de slag. Quote
0 rmw Posted March 13, 2015 Posted March 13, 2015 ... en is de juiste Goedkeuring van menno...mijn leven is compleet rmw Quote
0 menno Posted March 13, 2015 Posted March 13, 2015 De essentie van de opmerking over zijn oplossing is: wanneer je ambivalente gegevens gaat verwerken, je niet gewoon aannames kan doen, maar de zaak gewoon moet controleren. GetAsDate() geeft geen enkele controle, die functie gaat er vanuit dat de te verwerken gegevens al in het juiste formaat staan en dat weet je niet. Quote
0 Keeshart Posted March 13, 2015 Posted March 13, 2015 Felix dank voor je bijval uitleg. Nog even over de andere oplossing. Als de systemen verschillend staan ingesteld leid dit volgens mij altijd tot problemen. Dan kan namelijk de invoer al andersom staan dat moet dus ook zeker zijn. Je moet er dus domweg zeker van zijn dat beide systemen hetzelfde stelsel gebruiken en dan is blijkbaar getasdate de simpelste oplossing. Nu is een check op welk stelsel een uitdaging ik neem aan dat er geen invloed is op de invoer gegevens. Quote
0 menno Posted March 13, 2015 Posted March 13, 2015 Het gaat mij niet om de aannames, maar om dat wordt uitgezocht in welk formaat iets wordt aangeleverd en in welk formaat dat uiteindelijk moet worden verwerkt. Met GetAsDate() wordt dat helemaal aan het toeval overgelaten en met de let/middle/date combinatie geef je jezelf als programmeur de gelegenheid om dat toeval uit te sluiten. Quote
0 Keeshart Posted March 13, 2015 Posted March 13, 2015 Daar ben ik het mee eens als je in dit geval de bron kan garanderen anders laat je het alsnog aan toeval over. Immers als de bron uit wisselende stelsels komt blijft het een uitdaging. Quote
0 menno Posted March 13, 2015 Posted March 13, 2015 krijg van een koeriersdienst de overzichten binnen, echter in een veld staat de datum en tijd ... ik neem aan (ja ik doe ook aannames ) dat deze bron de gegevens altijd met hetzelfde formaat aanlevert. Bij het hanteren van meerdere bronnen is het gebruikelijk om voor iedere bron een eigen "filter" te maken en dan is nog steeds GetAsDate() niet de manier. Quote
0 menno Posted March 13, 2015 Posted March 13, 2015 02/03/15 10:41 grappig zoals je de door Gerard geleverde informatie doodleuk aanpast en daar de voorloopnullen uit verwijdert om je punt te kunnen maken. Beschouw het maar als gemaakt Quote
0 Gerard Exis Posted March 13, 2015 Author Posted March 13, 2015 Heren, heel veel dank en waardering voor jullie input maar a.u.b. geen scherpe reactie's naar elkaar, er is al zoveel ellende in de wereld. Ook moet ik toegeven dat de aanlevering van data van dit koeriersbedrijf op verschillende manieren gedaan wordt, namelijk als volgt: 02-03-15 10:41 of 02-03-2015 of 02-03-15 of 2015-03-02 en zelfs 0000-00-00 , dit komt omdat de gegevens van diverse verschillende filialen komen. Ik kon hier geen oplossing voor vinden totdat ik het vanochtend meer dan zat was en even met het koeriersbedrijf een duidelijke afspraak heb gemaakt, door deze aanlevering kan ik het factuur die zij naar mij sturen niet controleren, ongecontroleerde facturen worden in een Nederlands bedrijf NIET voldaan, dus ...... zij hebben plechtig beloofd het te gaan oplossen, nu ben ik benieuwd in welk formaat Quote
0 hans erik Posted March 17, 2015 Posted March 17, 2015 De verschillende filialen mogen natuurlijk wel hun eigen formaat aanleveren, als het maar steeds hetzelfde formaat per filiaal is. Als dat per filiaal ook nog eens verschilt ben je de sjaak. Ik denk dat er op BrianDunning.com wel een inleesfunctie is die je kunt parametriseren, en anders is die wel te maken. Dus je geeft dan een datumformat mee met de tekststring en de functie komt met de juiste datumwaarde terug. Quote
0 Gerard Exis Posted March 17, 2015 Author Posted March 17, 2015 Beste Hans Erik, dank je voor je reactie, echter dit is op dit moment net effe te hoog gegrepen voor mij. Tussen alle zakelijke drukte door probeer ik zoveel mogelijk mijn database uit te breiden met mogelijkheden waar ik dagelijks gemak van heb. Echter ik weet eigenlijk totaal niks van FM, of wat voor programma dan ook, ik doe het iedere keer stapje bij stapje, probleem opgelost, op naar het volgende probleem Eerlijk gezegd heb ik voor de makkelijkste weg gekozen, dit omdat zakelijk "het seizoen" start, de aankomende maanden weer absurd druk is voor mij. De makkelijkste weg is (gezien het aantal verzendingen per jaar) dat het koeriersbedrijf dit graag gaat oplossen. Quote
0 lavino Posted May 24, 2015 Posted May 24, 2015 ik heb om een maand naam te bepalen de functie MonthName(datum) gebruikt . werkt goed. maar bestaat er in FM ook een functie of berekening om het juiste kwartaal te krijgen. ? Fred Quote
0 menno Posted May 24, 2015 Posted May 24, 2015 De eenvoudigste methode vind ik deze: Ceiling ( Month ( Datum ) / 3 ) Quote
0 lavino Posted May 24, 2015 Posted May 24, 2015 werkt prima. ik kende de functie ceiling niet. veel dank fred Quote
0 lavino Posted May 26, 2015 Posted May 26, 2015 Aangenomen - dat de datum in het formaat MM/DD/YY HH:MM is - dat het altijd twee cijfers voor dag, maand en jaar heeft - dat er geen datums voor 1-1-2000 zullen voorkomen - dat het in het veld Importdatum staat Dan kan het als volgt: Let ( [xDag = Middle ( Importdatum ; 4 ; 2 ) ;xMaand = Middle ( Importdatum ; 1 ; 2 ) ;xJaar = 2000 + Middle ( Importdatum ; 7 ; 2 )] ; Date ( xMaand ; xDag ; xJaar ) zie bijlage : ik krijg niet de juiste datum kan iemand mij helpen ?Fredtekst naar datum.fmp12 Quote
0 Infomatics Posted May 26, 2015 Posted May 26, 2015 De formule moet in dit geval zijn: Let ( [ xDag = right ( datumtekst; 2 ) ; xMaand = Middle ( datumtekst ; 5 ; 2 ) ; xJaar =left ( datumtekst ; 4 ) ] ; Date ( xMaand ; xDag ; xJaar ) ) Groet, Ruben Quote
0 lavino Posted May 26, 2015 Posted May 26, 2015 perfect Ruben, hartelijk dank , werkt goed , ik kan weer verder. Quote
Question
Gerard Exis
Beste mensen,
krijg van een koeriersdienst de overzichten binnen, echter in een veld staat de datum en tijd, hoe krijg ik de datum hieruit? Deze heb ik nodig ivm een berekening.
ik krijg het als volgt binnen: 02/03/15 10:41
25 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.