Delphi Gebruikersgroep

 

Home    Up

In een Query een float omzetten naar een string

Ik ben bezig een query te bouwen maar stuit daarbij op het volgende probleem. 
Ik gebruik een TQuery component. Ik moet een dbase/foxpro database filteren met behulp van een datum. Deze datum is opgeslagen als een float met als formaat dmmjjjj. Ik moet alle records hebben met als jaar 2001. Op het eerste gezicht lijkt het niet zo moeilijk. Gewoon omzetten naar een string en de laaste 4 posities pakken, maar helaas krijg ik dat niet voor elkaar. 

Weten jullie hiervoor een oplossing? 

Mvg Kees

--

Hoi kees, 
Dit mag toch niet z'n probleem zijn alleen denk je volgens mij verkeerd je zegt ". Deze datum is opgeslagen als een float met als formaat dmmjjjj" je bedoelt denk ik DDMMJJJJ. 
als dit zo is dan is je query toch 

select * from "tablenaam" where datum >= 1012001 and datum <= 31122001 

of zie ik iets over het hoofd??? 

Roelof

--

Hallo Roelof 

Bedankt voor je reaktie. Helaas is de datum niet opgeslagen als een 'date'. Het veld waarin de datum is opgeslagen is gedefinieerd als een 'number'. Wat ik bedoel met dmmjjjj is dat in dat getal de eerste 1 of 2 cijfers de dag voorstellen, de volgende 2 cijfers voor de maand en de overige 4 cijfers het jaar. Ik wil graag in een TQuery component het jaar uit dit getal halen en vergelijken met een bepaald jaar, maar wat ik ook probeer ik krijg steeds foutmeldingen.

--

Hoi kees, 
dan klopt het toch wat ik zeg 1 jan 2001 wordt opgeslagen als 1012001 31 dec 2001 wordt opgeslagen als 31122001 dus in je query kun je toch een vergelijk maken dat alle datum tussen deze 2 datums liggen 

Roelof

--

Hallo Roelof. 

De data's zijn opgeslagen als een getal. Dit betekent dat tussen het 7 cijferig getal 1012001 en achtcijferig getal 31122001 een heleboel getallen zitten. Zodra bij 1012001 al 1 optelt zit je op 1012002 die keurig tussen je getallen, maar wel een fout resultaat is. Ik wil alleen de jaren 2001 filteren. Jouw oplossing zou wel werken als de jaren aan de linkerkant van het getal stonden en dagen uiterst rechts (jjjjmmdd). Helaas kun je in een TQuery-component geen bij komende bewerkingingen uitvoeren zoals 'Substring', oid. Ik probeer op aanraden van anderen de oplossing te zoeken in een onfilterrecord procedure van het TTable component. 

In ieder geval bedankt voor je reakties 

Kees