Avatar billede styrbaek Nybegynder
12. juni 2001 - 08:47 Der er 11 kommentarer og
1 løsning

vis poster mindre 7 dage gamle

Jeg har tidligere fået hjælp til dette problem, men det svar jeg godtog var alligevel ikke helt rigtigt.
Sagen er at der kun skal vises poster der er minder end 7 dage gamle.

Min sql ser således ud:
sqlstr = \"SELECT * FROM news where date > #\" & Date()-7 & \"# ORDER BY id desc\" 

Jeg har fundet ud af at jeg skal bruge dateadd, men jeg kan ikke rigtig få det til at virker.
Er der en der kan give et eksempel?
Avatar billede slash Nybegynder
12. juni 2001 - 09:02 #1
således:

sqlstr = \"SELECT * FROM news where DATEDIFF(day, date, getdate()) <= 7 ORDER BY id desc\" 
Avatar billede styrbaek Nybegynder
12. juni 2001 - 09:27 #2
Så får jeg følgende fejl:

Microsoft JET Database Engine error \'80040e14\'

Undefined function \'getdate\' in expression.

Avatar billede slash Nybegynder
12. juni 2001 - 09:30 #3
getdate() er en indbygget funktion i sql-serveren!

men nu kan jeg se du bruger access....
kan dette bruges:
sqlstr = \"SELECT * FROM news where DATEDIFF(day, date, #\"&date()&\"# ) <= 7 ORDER BY id desc\" 
Avatar billede slash Nybegynder
12. juni 2001 - 09:39 #4
jeg har ikke den fjerneste idé om det virker, idet det er > 2 år siden jeg knoklede med access
Avatar billede styrbaek Nybegynder
12. juni 2001 - 09:48 #5
Nu siger den:
Microsoft JET Database Engine error \'80040e10\'

No value given for one or more required parameters.

Kan det give problemer at datofeltet i min db hedder \"date\"??
Avatar billede carpediem Nybegynder
12. juni 2001 - 10:28 #6
sqlstr = \"SELECT * FROM news where date > #\" & DateAdd(\"d\", Date(), -7) & \"# ORDER BY id desc\" 
Avatar billede styrbaek Nybegynder
12. juni 2001 - 10:39 #7
Skal d ikke have en værdi??
Avatar billede carpediem Nybegynder
12. juni 2001 - 10:43 #8
DateAdd funktionen fungerer således:
DateAdd(Interval, nummer, Dato)

Det gør jo egentlig at det jeg lige sendte er forkert. Her er det rigtige:
sqlstr = \"SELECT * FROM news where date > #\" & DateAdd(\"d\", -7, Date()) & \"# ORDER BY id desc\".

Interval kan være:
yyyy år
q Kvartal
m Måned
y Dag i året
d Dag
w Ugedag
ww Ugenr
h Time
n Minut
s Sekund
Avatar billede carpediem Nybegynder
12. juni 2001 - 10:44 #9
Det kan godt tænkes at nummeret skal i \", men så ser det jo bare således ud:
sqlstr = \"SELECT * FROM news where date > #\" & DateAdd(\"d\", \"-7\", Date()) & \"# ORDER BY id desc\"
Avatar billede styrbaek Nybegynder
12. juni 2001 - 11:10 #10
Ok nu får jeg ingen fejlmeddelse, når jeg bruger denne sql
sqlstr = \"SELECT * FROM news where date > #\" & DateAdd(\"d\", -7, Date()) & \"# ORDER BY id desc\"

Men....

Min db indeholder 2 poster, 1 som er oprettet d. 8. juni og en idag d. 12. juni.
Når jeg indsætter -7 og -6 vises begge poster, men hvis jeg skriver -5 eller -4 osv. så bliver der ikke vist nogen af dem??
Avatar billede carpediem Nybegynder
12. juni 2001 - 15:32 #11
kan du ikke lige sende noget mere af koden
Avatar billede styrbaek Nybegynder
13. juni 2001 - 08:18 #12
Undskyld, men jeg blev lige optaget af noget andet.
Her har du lidt kode at kigge på :-)

<%language=\"VBScript\"


\' sqlstr = \"SELECT  TOP \" & numItems & \" * FROM news ORDER BY date DESC, time DESC\"
sqlstr = \"SELECT * FROM news where date > #\" & DateAdd(\"d\", \"-7\", Date()) & \"# ORDER BY id desc\"
\' sqlstr = \"SELECT * FROM news where date > #\" & DateAdd(\"d\", -5, Date()) & \"# ORDER BY id desc\"


Set rsnews = news.Execute(sqlstr)
If Err.Number <> 0 Then
  response.write \"Couldn\'t exec SQL query\"
  response.end
End If
If rsnews.EOF Then
  response.write \"Der er ingen nyheder i databasen\"
  response.end
End If
Function to_html(s_string)
to_html = Replace(s_string, vbcrlf, \"<br>\")
to_html = Replace(to_html, \"\"\"\", \"&quot;\")
End Function
rsnews.moveFirst
Dim db
While Not rsnews.EOF
s_message=rsnews.fields(\"news\")
s_message2=to_html(s_message)
s_message3=to_html(s_message)
If rsnews.fields(\"urls\") = \"1\" THEN
s_message3 = edit_hrefs(s_message2)
End if
currdate = FormatDateTime(rsnews.fields(\"date\"), 1)
if db <> currdate then
%><%
    db = currdate
  end if
%><a href=\'news.asp#<%=rsnews.fields(\"title\")%>\' target=\"bbo_middleframe\">- <%=rsnews.fields(\"title\")%></a><br>
<img height=\"3\" border=\"0\" width=\"1\" src=\"http://www.brandebladet-online.dk/gfx/spacer.gif\"><br>
<%
  rsnews.moveNext
Wend
Set rsnews = news.Execute(\"SELECT TOP 1 * FROM news ORDER BY date DESC;\")
%><br>Nyhederne er sidst opdateret d. <%=rsnews(\"date\")%>    </font><br>
<% rsnews.close
set rsnews = nothing
%>
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