/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Indekseret datofelt i Paradox
Fra : Ole Dalsgaard Jensen


Dato : 28-01-03 18:25

Hej NG

Kan nogen fortælle, hvordan man skal angive datoværdier i en forespørsel mod
en paradox-tabel med et datofelt, som er indekseret.
Forespørgslen skal anvendes i forbindelse med
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "Driver={Microsoft Paradox Driver (*.db )}; DBQ=" &
server.mappath("/stinavn")
(Det skal bemærkes, at Microsoft Paradox Driver normalt forudsætter, at
Borland Database Engine (BDE) er installeret. Det er dog ikke nødvendigt,
hvis en tabel er eksporteret fra Access)

Jeg har forsøgt med
SELECT * FROM tabelNavn WHERE FORMAT(datoFelt,'yy-mm-dd') BETWEEN '03-01-14'
And '03-01-16'

Selvom datoFelt er indekseret udnyttes indekset ikke i den situation, og
svartiden bliver for lang, når der er mange data i tabellen.
Det forekommer umiddelbart logisk nok, at indekset ikke benyttes, da jeg i
situationen konverterer det til en tekst-streng.

Jeg regner med, at jeg på en eller anden måde skal bruge et dato-udtryk
efter BETWEEN i stil med
SELECT * FROM tabelNavn WHERE datoFelt BETWEEN " & dato1 & " And " & dato2

Problemet er bare at jeg ikke kan finde ud af hvordan jeg skal formulere 14.
januar 2003 som et dato-udtryk
dato1 = DateValue('14-01-03') eller
dato1 = DateValue('14/01/03')
og alle mulige kombinationer i rækkefølgen på mm dd yy (eller yyyy) og
bindestreger og skråstreger har hidtil ikke givet mig løsningen.

Jeg kan oplyse, at datoen 14. januar 2003 som standard vises som 14-01-03

Jeg håber nogen kender det præcise udtryk.

Med venlig hilsen

Ole Dalsgaard Jensen
ole.dalsgaard@stofanet.dk



 
 
Ole Dalsgaard Jensen (29-01-2003)
Kommentar
Fra : Ole Dalsgaard Jensen


Dato : 29-01-03 18:59

Da jeg ikke umiddelbart fik noget bud på løningen her, spurgte jeg også i
comp.databases.paradox, hvor jeg fik dette svar:
Try:

SELECT *
FROM tableName
WHERE dateField BETWEEN {d '2003-01-14'} AND {d '2003-01-16'}

If datefield is a datetime field, try:

SELECT *
FROM tableName
WHERE dateField BETWEEN {dt '2003-01-14'} AND {dt '2003-01-16'}


--
Larry DiGiovanni
Digico, Inc
IT Consulting and Staffing Solutions
www.digicoinc.com
Check out www.thedbcommunity.com for Paradox resources.
New position listings on www.digicoinc.com/joinus.htm
--------------------------
Måske kan andre også få gavn af svaret

mvh. Ole

"Ole Dalsgaard Jensen" <ole.dalsgaard@stofanet.dk> skrev i en meddelelse
news:3e36bcd8$0$24684$ba624c82@nntp02.dk.telia.net...
> Hej NG
>
> Kan nogen fortælle, hvordan man skal angive datoværdier i en forespørsel
mod
> en paradox-tabel med et datofelt, som er indekseret.
> Forespørgslen skal anvendes i forbindelse med
> Set Conn = Server.CreateObject("ADODB.Connection")
> Conn.ConnectionString = "Driver={Microsoft Paradox Driver (*.db )}; DBQ="
&
> server.mappath("/stinavn")
> (Det skal bemærkes, at Microsoft Paradox Driver normalt forudsætter, at
> Borland Database Engine (BDE) er installeret. Det er dog ikke nødvendigt,
> hvis en tabel er eksporteret fra Access)
>
> Jeg har forsøgt med
> SELECT * FROM tabelNavn WHERE FORMAT(datoFelt,'yy-mm-dd') BETWEEN
'03-01-14'
> And '03-01-16'
>
> Selvom datoFelt er indekseret udnyttes indekset ikke i den situation, og
> svartiden bliver for lang, når der er mange data i tabellen.
> Det forekommer umiddelbart logisk nok, at indekset ikke benyttes, da jeg i
> situationen konverterer det til en tekst-streng.
>
> Jeg regner med, at jeg på en eller anden måde skal bruge et dato-udtryk
> efter BETWEEN i stil med
> SELECT * FROM tabelNavn WHERE datoFelt BETWEEN " & dato1 & " And " & dato2
>
> Problemet er bare at jeg ikke kan finde ud af hvordan jeg skal formulere
14.
> januar 2003 som et dato-udtryk
> dato1 = DateValue('14-01-03') eller
> dato1 = DateValue('14/01/03')
> og alle mulige kombinationer i rækkefølgen på mm dd yy (eller yyyy) og
> bindestreger og skråstreger har hidtil ikke givet mig løsningen.
>
> Jeg kan oplyse, at datoen 14. januar 2003 som standard vises som 14-01-03
>
> Jeg håber nogen kender det præcise udtryk.
>
> Med venlig hilsen
>
> Ole Dalsgaard Jensen
> ole.dalsgaard@stofanet.dk
>
>



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste