webForumDet fria alternativet

datum fel

7 svar · 349 visningar · startad av henkz

henkzMedlem sedan apr. 2002183 inlägg
#1

Koden nedan fungerar inget vidare. Det som händer är att alla medlemmar som var inloggade för exakt en månad sedan visas.

Jag vill endast få fram dem som varit inloggad det senaste dygnet(24h)

Sql = "Select count(*) as Found from user where logfil between '"&DateAdd("d",-1,now()) &"' AND '"&now()&"'"

db= mysql 4.x
datatyp för logfil: varchar(30) -Vill behålla denna typ..

LarsGMedlem sedan dec. 200012 464 inlägg
#2

varchar(30) -Vill behålla denna typ..

Varför?

Sql = "Select count(*) as Found from user " & _
" where logfil between Date_Sub(current_date, interval 1 day) and current_date "

Flyttas från Mysql

henkzMedlem sedan apr. 2002183 inlägg
#3

Jag försökte ändra datatyp, men det ställde bara till det.
Webbservern var förrut placerad i annat land och hade inte stöd för svenska. Använde då tyskdatum och servern var linux med sunasp. Nu använder jag istället en svensk winserver.

Koden ovan gav resultatet: 0

Det måste bero på lagningen av datumet.
logfil= 07.05.2004 07:02:03

Går detta att fixa tror du?

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Om alla värden har samma format så borde

where 
concat(substring(logfile from 7 for 4), '-',
           substring(logfile from 4 for 2) , '-'
           substring(logfile from 1 for 2))
between date_sub(current_date,interval 1 day) and current_date

Om du använder en datetime datatyp och sql-funktioner (t.ex. current_timestamp) för att lagra datum så slipper du krångel.

henkzMedlem sedan apr. 2002183 inlägg
#5

Får tyvärr felet:

MySQL][ODBC 3.51 Driver][mysqld-4.0.17-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(substring(logfile from 7 for 4), '-', substring(logfile from 4

henkzMedlem sedan apr. 2002183 inlägg
#6

Kom på en sak.
Om en person inte har aktiverat sitt konto, blir "logfil" tomt!
Då kanske inte din kod ovan fungerar...

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Det fel som du får har inget att göra med vilket data som finns i tabellen.

Jag hade missat ett komma

select count(*) from found
where 
concat(substring(logfile from 7 for 4), '-',
           substring(logfile from 4 for 2) , '-',
           substring(logfile from 1 for 2))
between date_sub(current_date,interval 1 day) and current_date
henkzMedlem sedan apr. 2002183 inlägg
#8

Fungerar perfekt!

Tack så mycket!

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)