Hur gör jag en select sats där jag vill ha alla rader där en columns datum/tid Har aldrig använt SQL Server men det du kan göra är att först ta bort 20 sekunder från datumet du ska jämföra med... SELECT * FROM Tabel WHERE DateDiff(s, DateCol, '" & EttDatum & "') < 20 ORDER BY DateTid DESC Det 'borde' fungera MEN om du som lagerprogrammerare har chansen så kan en enkel grundregel vara att du låter databasen göra så mycket jobb som du kan eftersom webservern, som din kod skulle ligga på, har nog att göra ändå.Hjälp med Select.. =(
är nyare än 20 secunder tillbaka... förut körde jag mot en Access-databas
och då gjorde jag så här:
"SELECT * FROM Tabel WHERE DateDiff('s', DateCol, '" & EttDatum & "') < 20 ORDER BY DateTid DESC"
Det funka fint i Access men inte SQL... fick många olika fel när jag testa
bland annat: "Difference of two datetime columns caused overflow at runtime."
knepigt... någon som kan hjälpa mig med detta??
Tack på förhand.
/JohanSv: Hjälp med Select.. =(
Använd DateAdd("s", -20, Now()) fast och spara resultatet i en variabel...
Sen skriver du din SQL sats såhär...
"SELECT * FROM Tabel WHERE DateCol < " & [variabeln] & " ORDER BY DateTid DESC"
Tror och tycker att det borde fungera...
Mvh ThomasSv: Hjälp med Select.. =(
Ta bort '-tecknet runt s (för sekund) och se verkligen till att formatet på båda datumen (DateCol och EttDatum) är av typen long date, t ex '2002-01-16 08:55:50'
Din tabell verkar inte ha någon sådan kolumn utan du verkar ha lagt datumet i en och tiden i en tabell, eller? DateCol och DateTid.
Om du försöker plocka ut sekunder ur ett datum som inte har detta så kommer SQL-server att försöka dela med noll, vilket som bekant inte funkar.Sv: Hjälp med Select.. =(
Grundregeln är att databasen kan sköta de formateringar som den kan och sen returnera så lite och så ren data som möjligt.