Avatar billede lizardine Nybegynder
28. marts 2001 - 13:49 Der er 11 kommentarer og
1 løsning

Søgestreng og datatyper

Hej

Jeg har en søgefunktionalitet. Funktionaliteten er et tekstfelt hvor man kan indtaste sit søgesnask.

mit problem er at man kan søge på tekst og datoer. Men når sætter søgestrengen der er tekst op imod en kolonne med datatype datetime opstår der fejl.

Hvordan kan man konverterer søgestrengen så den kan sættes op imod en kolonne med datatype datetime.

Jeg anvender MSSQL2K
Avatar billede lizardine Nybegynder
28. marts 2001 - 13:50 #1
Her er forresten min SQL streng:

SqlQ = \"Select * from Tabel Wherer Tekst=\'\" & request(\"soegestreng\") & \"\' OR Dato=\" & request(\"soegestreng\") & \"\"
Avatar billede netsrac Praktikant
28. marts 2001 - 13:53 #2


SqlQ = \"Select * from Tabel Wherer Tekst=\'\" & request(\"soegestreng\") & \"\' OR Dato=\" & FormatDateTime(request(\"soegestreng\"),1) & \"\"
Avatar billede slash Nybegynder
28. marts 2001 - 13:57 #3
Bruger du wildcardet like i din søgning med datoer! Hvis ikke skal du gøre det, idet datetime jo kan indeholde et utal af forskellige dtetime formater!

du kunne jo vælge og lægge søgningen i en stored procedure.... og så bruge CONVERT i T-SQL :-].... så får du oxo lidt bedre performance :-)

Avatar billede netsrac Praktikant
28. marts 2001 - 14:00 #4
Hvis det er Access så:

SqlQ = \"Select * from Tabel Wherer Tekst=\'\" & request(\"soegestreng\") & \"\' OR Dato=#\" & FormatDateTime(request(\"soegestreng\"),1) & \"#\"
Avatar billede lizardine Nybegynder
28. marts 2001 - 14:00 #5
Jeg prøvet med wildcards og det virker.... det finder bare ikke den ønskede dato.... også selvom at datoen er listet i tabellen

FormatDateTime virker ikke.... er det ikke kun med en Access DB man kan anvende den... eller..
Avatar billede netsrac Praktikant
28. marts 2001 - 14:08 #6
Nej den kan anvendes til at formatere en streng til en dato, bruger du access ?
Avatar billede lizardine Nybegynder
28. marts 2001 - 14:09 #7
Nej MS SQL 2000
Avatar billede slash Nybegynder
28. marts 2001 - 14:10 #8
så må du skrive det format ud som dine datoer ligger gemt som i din base!

Dernæst må du taget din inputdato og konvertere til dette format!
Avatar billede slash Nybegynder
28. marts 2001 - 14:12 #9
eller måske du skulle overveje at lave det som en full text seach! Dette kan du med lethed gøre i sql-server 2000, og syntaksen du så bl.a. kan bruge er CONTAINS bla. , bla.
Avatar billede netsrac Praktikant
28. marts 2001 - 14:13 #10
Du kan jo gøre det sådan her:
Så skal du bare bruge formatdatetime til at finde det rigtige format afhængigt af hvilket format du har i databasen

SqlQ = \"Select * from Tabel Wherer Tekst=\'\" & request(\"soegestreng\") & \"\' OR Dato=\" & FormatDateTime(request(\"soegestreng\"),1) & \"\"

http://www.asp.dk/docs/vbscript/vsfctFormatDateTime.htm
Avatar billede lizardine Nybegynder
28. marts 2001 - 14:15 #11
Den er ok den der med formatDateTime.... men hvis du ber den om at håndterer ikke dato relaterede strenge flipper den ud og giver fejl.
Avatar billede lizardine Nybegynder
29. maj 2001 - 23:31 #12
Jeg fandt ikke svaret her.. spg er lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester