Jump to content
  • 0

datum uit veld filteren


Gerard Exis

Question

Posted

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

  • 0
Posted

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

  • 0
Posted
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

  • 0
Posted

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.

  • 0
Posted

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.

  • 0
Posted

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.

  • 0
Posted

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.

  • 0
Posted
krijg van een koeriersdienst de overzichten binnen, echter in een veld staat de datum en tijd ...

ik neem aan (ja ik doe ook aannames :P) 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.

  • 0
Posted
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

  • 0
Posted

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 8O , 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 ...... :mrgreen:

 

zij hebben plechtig beloofd het te gaan oplossen, nu ben ik benieuwd in welk formaat :wink:

  • 0
Posted

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.

  • 0
Posted

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 :D

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.

  • 0
Posted

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

  • 0
Posted
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 ?

Fred

tekst naar datum.fmp12

  • 0
Posted

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...