Avatar billede schubert1 Nybegynder
03. maj 2004 - 14:54 Der er 9 kommentarer og
1 løsning

dato1 > dato2 i SQL og ASP

Hej. Jeg er igang med et forum hvor brugeren skal kunne se hvormange indlæg der er nyere end sidst han tjekkede ind. Jeg har fundet ud af at konvertere datoen til MySQL DateNTime format (yyyy-mm-dd hh:nn:ss).
Dog sker der noget mystisk når jeg gæmmer denne dato i en session variable, den konverterer til dansk dato format uden at jeg beder den om det...

er der nogen der ved hvordan?
Avatar billede schubert1 Nybegynder
03. maj 2004 - 14:57 #1
ehh selvfølgelig hvordan jeg undgår at den laver dette nummer med at konvertere :D
Avatar billede medions Nybegynder
03. maj 2004 - 15:00 #2
Kig en gang på DateDiff() funktionen...

http://www.devguru.com/Technologies/vbscript/quickref/datediff.html

//>Rune
Avatar billede fennec Nybegynder
03. maj 2004 - 15:06 #3
du kunne sætte den rigtige session.lcid

session.lcid = 1069 'yyyy/mm/dd hh:mm:ss
session.lcid = 1030 'dd-mm-yyyy hh:mm:ss

havde ikke lige nummeret på 'yyyy-mm-dd, hvis der er en sådan.
Avatar billede schubert1 Nybegynder
03. maj 2004 - 16:08 #4
Okay jeg har sat session.LCID = 1036 (den franske) det virker tildels... Mit problem er stadig at den finder ud af ved de to yderset fora (der er 3 i alt) at der ikke er nogen nye posts (den skal finde ud af at der ikke er nogen i alle 3). Men i den midterste siger den at der er en ny post.

De nyeste posts datoer:
1) 2004-04-02 15:09:00
2) 2004-02-13 14:24:12
3) 2004-05-03 15:49:12

den der skal sammenlignes med:
2004-05-03 15:59:52

Hvorfor siger den at der er en ny post i 2'eren?
Avatar billede schubert1 Nybegynder
04. maj 2004 - 10:01 #5
min kode der ser således ud:
SQL = "SELECT COUNT(*) as NEW FROM forum WHERE forum = '" & RSFOR("forum") & "' AND '" & RSMES_last("datentime") & "' > '" & session("sidstonline") & "'"

Både table og den første col hedder "forum" mens datoen for posten ligger i "datentime" og sidstonline er den dato der skal tjekkes med...
Avatar billede fennec Nybegynder
04. maj 2004 - 10:24 #6
det lader til at den ikke kører med yyyy-mm-dd på sql-serveren men med yyyy-dd-mm.

Der er altid problemer med at finde det rigtige format, uanset hvad man gør.

prøv at bruge denne funk på dine datoer når du bruger dem med databasen.

Function ConvertToSqlDatetime(dato)
    dim SQLYear,SQLMonth,SQLDay,SQLHour,SQLMinute
'    response.write "dskb " & dato
    SQLYear = Year(dato)
    SQLMonth = Month(dato)
    SQLDay = Day(dato)
    SQLHour = Hour(dato)
    SQLMinute = minute(dato)
    if SQLDay<10 then
        SQLDay = 0&SQLDay
    end if
    if SQLMonth<10 then
        SQLMonth = 0&SQLMonth
    end if
    ConvertToSqlDatetime = SQLYear"-"&SQLDay&"-"&SQLMonth&" "&SQLHour&":"&SQLMinute
End Function
Avatar billede fennec Nybegynder
04. maj 2004 - 10:27 #7
prøv også lige at skrive din SQL ud. Jeg vil gerne vide hvad der helt præsis står i RSMES_last("datentime") og session("sidstonline")
Avatar billede schubert1 Nybegynder
06. maj 2004 - 16:32 #8
min session("sidstonline") : 06/05/2004 16:05:31

og RSMES_last("datentime") : 04/05/2004 22:30:30

og den siger nye post = 0
Avatar billede fennec Nybegynder
10. maj 2004 - 08:25 #9
det er der ikke noget at sige til....
"04/05/2004 22:30:30 > 06/05/2004 16:05:31" vil aldrig være opfyldt. Er det måske:

SQL = "SELECT COUNT(*) as NEW FROM forum WHERE forum = '" & RSFOR("forum") & "' AND '" & RSMES_last("datentime") & "' < '" & session("sidstonline") & "'"

istedet???
eller skulle det ikke være et dato felt på selecten???

SQL = "SELECT COUNT(*) as NEW FROM forum WHERE forum = '" & RSFOR("forum") & "' AND ForumDateInserted > '" & session("sidstonline") & "'"
Avatar billede schubert1 Nybegynder
05. juli 2004 - 21:53 #10
tja der var nok et eller andet galt, men jeg har fået at vide at det har noget med min dataskruktur at gøre... så pointne går til medion fordi det er datediff() der skal benyttes...
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