Avatar billede taager-kongen Nybegynder
02. januar 2003 - 15:53 Der er 15 kommentarer og
1 løsning

sql-sætning

Jeg spugte om dette for et par dage side:
tja.. denne er nok lidt svær at forklarer men....
jeg skal bruge en sql-sætning som gør dette.:
finder server tid og finder den nyeste nyhed efter server tiden..
MEN NU KOMMER DET SVÆRE:
hvis datoen er 30-12-02 og klokken er 19.00. og der er disse i databasen:
30-12-02 20:20
30-12-02 20:00
30-12-02 19:01
skal den vise den 30-12-02 19:01..
Altså den må ikke vise nogen der er nyere end server-tiden
forstår i?

Jeg fik et script som ikke virker optimalt.... kan nogen hjælpe?
Avatar billede taager-kongen Nybegynder
02. januar 2003 - 15:59 #1
ups sådanne her:
eg skal bruge en sql-sætning som gør dette.:
finder server tid og finder den nyeste nyhed efter server tiden..
MEN NU KOMMER DET SVÆRE:
hvis datoen er 30-12-02 og klokken er 19.30. og der er disse i databasen:
30-12-02 20:20
30-12-02 20:00
30-12-02 19:01
skal den vise den 30-12-02 19:01..
Altså den må ikke vise nogen der er nyere end server-tiden
forstår i?
Avatar billede Jman Praktikant
02. januar 2003 - 16:31 #2
kan du ikke bare select'e top 1 where tidsfeltet < serverklokkeslet ?
Avatar billede nogetfx Nybegynder
02. januar 2003 - 16:54 #3
Kører du efter US-dato i din sql..? Og ligger dato og tid i samme felt, måske kunne du sætte lidt kode ind..?
Avatar billede taager-kongen Nybegynder
02. januar 2003 - 16:58 #4
felterne hedder:
dato tid news id
jeg bruger acess..
iden er man ikke kan se en nyhed for den skal kunne ses.. JEG vil bruge denne metode, så ikke kom med andre forslag...
min nurvænere kode er:
strSQL = "SELECT TOP 1 * FROM nyhed WHERE Dato<Date() and tid>time() ORDER BY Dato DESC"

som ikke virker rigtigt.. :(
Avatar billede nogetfx Nybegynder
02. januar 2003 - 17:16 #5
Hvis du kører med dansk landekode, så kan du starte med at ændre din dato "Date()" til US format.
SQl kører på US dato format, så du skal kører MM-DD-ÅÅ, hvor den tager klokken ved jeg ikke lige. Men prøv eventuelt at ændre din dato, og så kan du tage klokken bagefter.

    strDato = Month(Date) & "-" & Day(Date) & "-" & Year(Date)
    Set RS = Conn.Execute("SELECT top 1 * FROM TabelNavn where dato < #" & strDato & "# ORDER BY dato asc")
Avatar billede nogetfx Nybegynder
02. januar 2003 - 17:21 #6
Ja, nu har jeg CopyPastet skidtet:


    strDato = Month(Date) & "-" & Day(Date) & "-" & Year(Date)
    StrSQL = "SELECT top 1 * FROM nyhed where Dato < #" & strDato & "# DESC")

Hvilket format har du på datoen i Access DD-MM-ÅÅÅÅ og har du lavet inpu-maske..?
Avatar billede taager-kongen Nybegynder
02. januar 2003 - 17:32 #7
den tager denne:
30-12-02 19:01

altså den sidste.. ændre jeg til desc er det det samme... hvad nu?
Avatar billede nogetfx Nybegynder
02. januar 2003 - 18:03 #8
Ja hvad nu.. hehe

strDato = Month(Date) & "-" & Day(Date) & "-" & Year(Date)& " " & Time()
    StrSQL = "SELECT top 1 * FROM nyhed where Dato < #" & strDato & "# DESC")

JEg tror at det giver nogle syntax-problemer at du har et mellemrum. Men prøv at kører denne sætning ellers udskriv den så vi kan se om vi rammer syntax'en

Og husk at have <% Session.LCID = 1030 %> i toppen
Avatar billede taager-kongen Nybegynder
02. januar 2003 - 18:09 #9
jeg ahr ikke mellemrum...:
dato tid
er to koloener?? hvad så?
Avatar billede nogetfx Nybegynder
02. januar 2003 - 18:30 #10
PRØV:

strDato = Month(Date) & "-" & Day(Date) & "-" & Year(Date)
    StrSQL = "SELECT top 1 * FROM nyhed where Dato < #" & strDato & "# "
    StrSQL = StrSQL & "And Tid < #" & Time() & "# DESC"

Når jeg udskriver den får jeg:
SELECT top 1 * FROM nyhed where Dato < #1-2-2003# And Tid < #18:30:33# DESC
Avatar billede taager-kongen Nybegynder
02. januar 2003 - 18:50 #11
for denne fejl:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "Dato < #1-2-2003# And Tid < #18:48:14# DESC".
/rasmus/cms/news.asp, line 9
Avatar billede taager-kongen Nybegynder
02. januar 2003 - 18:55 #12
nu tror jeg det virker med denne:
strDato = Day(Date) & "-" & Month(Date) & "-" & Year(Date)
strTID = time()
    StrSQL = "SELECT top 1 * FROM nyhed where Dato <= #" & strDato & "# and Tid < #" & strTID & "# order by dato desc"

kan det passe?
Avatar billede taager-kongen Nybegynder
02. januar 2003 - 19:00 #13
hvis tiden så er 7:59 viser den ingen news???
Avatar billede nogetfx Nybegynder
03. januar 2003 - 00:47 #14
Hvis den visser den tid, så har du ikke skrevet din landekode, ellers hvor meget har du sat uret frem..?

<% Session.LCID = 1030 %>
Avatar billede taager-kongen Nybegynder
06. januar 2003 - 12:52 #15
hvis jeg sætter tiden frem siger den ingen news? forstår det ikke....
Avatar billede nogetfx Nybegynder
06. januar 2003 - 13:34 #16
Har du landekode..?

Plus hvis du sætter tiden frem så er der jo ingen nyheder, vil du så have den sidst skrevne ny hed vist..?
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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