Avatar billede hundevennen Nybegynder
24. februar 2009 - 07:53 Der er 18 kommentarer og
1 løsning

sql forespørgsel hjælp?

Jeg har en aktivitetskalender kørende på et intranet og der sker nu at jeg får en fejl fra IISen response buffer limit exceeded - så lang så godt.

Det er fordi jeg henter formange data med min sqlsætning hvor jeg bare bruger select * from - så henter den alle aktiviteter både fra fremtidige aktiviteter og gamle fra sidste år og der er altså mange.

Det jeg kunne tænke mig var at lave en sql der hedder noget med

SELECT * From tabel WHERE Dato er = this year and Dato >DagsDato
Avatar billede ladyhawke Novice
24. februar 2009 - 08:08 #1
Noget i den her stil:

SELECT * FROM tabel WHERE DatePart(yyyy,Dato)= DatePart(yyyy,GETDATE()) AND Dato > GETDATE()

Har ikke lige mulighed for at tjekke syntaksen her, men det burde give en ide
Avatar billede Slettet bruger
24. februar 2009 - 09:31 #2
For at forminske de data, kunne du skrive dine felter du bruger istedet for *. (Hvis der er mange felter du ikke bruger)

Lægger dit dato format i datatypen: date / datetime ?
Hvis det er et timestamp er der lidt andre forspørgelser der skal bruges.

SELECT * FROM table WHERE dato = CURDATE();
Avatar billede Slettet bruger
24. februar 2009 - 09:32 #3
Eller:
$sql = 'SELECT * FROM table WHERE dato = NOW()';
Avatar billede ladyhawke Novice
24. februar 2009 - 09:59 #4
qtax87> Brugeren beder ikke om aktiviteter for i dag, men aktiviteter i fremtiden...

Jeg tror faktisk du kan droppe at sammenligne på årstal... tror at Dato > GETDATE () er nok...
Avatar billede Slettet bruger
24. februar 2009 - 10:21 #5
Okay jamen så er det mig der har misforstået det.

Men så er det bare:
$sql = 'SELECT * FROM table WHERE dato >= NOW()';
Avatar billede Slettet bruger
24. februar 2009 - 10:21 #6
Så vil den ta' for dem idag, og i fremtiden.
Avatar billede hundevennen Nybegynder
24. februar 2009 - 11:35 #7
tak for hjælpen
Avatar billede hundevennen Nybegynder
24. februar 2009 - 11:39 #8
jeg kunne godt tænke mig at få dagsdato med også - har forsøgt med NOW() ,men får en fejl at den funktion ikke virker på min sqlserver???
Avatar billede Slettet bruger
24. februar 2009 - 12:50 #9
Hvis lige dit sql kald.

F.eks.:
$sql = 'SELECT * FROM table WHERE dato >= NOW()';

Så skal du bare print dato ud den hiver du jo ud pga. *.

Du vil printe den ud i din liste af aktivter ikke?
Avatar billede ladyhawke Novice
24. februar 2009 - 12:56 #10
prøv getdate(, det afhænger lidt af hvilken SQL server du bruger
Avatar billede hundevennen Nybegynder
24. februar 2009 - 13:26 #11
det er som layhawkes

SELECT * FROM tabel WHERE DatePart(yyyy,Dato)= DatePart(yyyy,GETDATE()) AND Dato > GETDATE()

Det virker men jeg får ikke dagsdato med
Avatar billede ladyhawke Novice
24. februar 2009 - 14:21 #12
nej selvfølgelig ikke, så er det >= i stedet for > det troede jeg du kendte... derfor svarede jeg ikke igen
Avatar billede ladyhawke Novice
24. februar 2009 - 14:22 #13
men jeg tror ikke du behover denne del af query: "DatePart(yyyy,Dato)= DatePart(yyyy,GETDATE()) AND" det burde faktisk blive testet i den sidste del...
Avatar billede hundevennen Nybegynder
24. februar 2009 - 14:48 #14
det jeg vil ha ud er alt fra min aktivitetskalender der er større end eller ligemed d.d.

jeg har lige prøvet
SELECT * FROM tabel WHERE Dato >= GETDATE()

Den gir mig ikke dags dato - kun fra imorgen og frem
Avatar billede Slettet bruger
24. februar 2009 - 14:59 #15
Hvad type er dato (datatype) i din database?
Avatar billede hundevennen Nybegynder
24. februar 2009 - 15:09 #16
godt spm. måske smalltimeinteger - ved det egentlig ikke
Avatar billede ladyhawke Novice
25. februar 2009 - 07:31 #17
Jeg antog det var en datetime, men du er nødt til at angive hvad det er, hvis man skal give et ordentligt svar på det
Avatar billede hundevennen Nybegynder
25. februar 2009 - 09:36 #18
jeg er desværre ikke administrator på selve databasen, så jeg har ikke direkte adgang men med et querytool står der timestamp
Avatar billede hundevennen Nybegynder
27. maj 2009 - 07:35 #19
har opgivet
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