webForumDet fria alternativet

count(*)

Databaser & SQL

8 svar · 243 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1
SQL = "SELECT COUNT(*) " _
	& " FROM company c, visitorClickLog vcl " _
	& " WHERE c.intID = vcl.intCompanyID " _
	& " AND c.intID =  " & request("companyID") _
	& " AND vcl.dteCreated = #" & date() & "# ;"

SQL = "SELECT COUNT(*) " _
	& " FROM visitorClickLog vcl " _
	& " WHERE vcl.dteCreated = #" & date() & "# ;"

set mySQL = Conn.Execute(SQL)

Denna koden borde bli 24 eller nåt men blir 0. Något som är fel...?!

(Den andra koden är en stripp av den första... Båda blir dock 0. Access + asp)

Medlem sedan dec. 19996 721 inlägg
#2

Det beror sannolikt på att datumet i dteCreated är lagrat med klockslag, men du jämför med ett rent datum. Kolla istället om dteCreated ligger mellan

date() & "00:00:00"

och

date() & "23:59:59"

...eller något som ger motsvarande resultat.

Medlem sedan juli 20003 825 inlägg
#3

Hmm... givetvis är det så!

Förstår inte hur jag kunnat knacka asp så länge och inte stött på detta tidigare...

Finns det inget motsvarande formatDateTime(myDate,2) i SQL?

Skulle i så fall bli nåt liknande...

& " WHERE formatDateTime(vcl.dteCreated,2) = #" & date() & "# ;"

Medlem sedan dec. 20003 887 inlägg
#4

Det närmaste är väl

cast( '2005-08-25' as smalldatetime )
Medlem sedan dec. 20003 887 inlägg
#5

Hmm. Nu blev jag osäker på vilket håll du ville konvertera...

convert( varchar( 10 ), '2005-08-25 11:00:00', 20 )

om det ska motsvara

FormatDateTime( '2005-08-25 11:00:00', 2 )
Medlem sedan juli 20003 825 inlägg
#6

Microsoft JET Database Engine error '80040e14'

Undefined function 'convert' in expression.

/admin/banner/log.asp, line 46

SQL = "SELECT COUNT(*) " _
	& " FROM visitorClickLog vcl " _
	& " WHERE convert( varchar( 10 ), vcl.dteCreated, 20 ) = #" & date() & "# ;"

Hmm... det finns inget i SQL som heter convert...! :-)

***
Tack för ditt inlägg! Jag letar på egen hand samtidigt.

http://www.w3schools.com/sql/default.asp

Denna dokumentationen hittade jag och där står inget om convert.

Medlem sedan dec. 20025 483 inlägg
#7
format(vcl.dteCreated, "short date")
Medlem sedan dec. 20003 887 inlägg
#8

Microsoft JET... om du kör Access ska det väl gå med

select count(*)
from visitorClickLog vcl
where FormatDateTime( vcl.dteCreated, 2 ) = #" & date() & "#"

Eclipse skrev:

Hmm... det finns inget i SQL som heter convert...! :-)

CAST and CONVERT

Medlem sedan juli 20003 825 inlägg
#9
SQL = "SELECT COUNT(*) " _
	& " FROM visitorClickLog vcl " _
	& " WHERE vcl.dteCreated > #" & date() & " 00:00:00" & "# AND vcl.dteCreated < #" & date() & " 23:59:59" & "#  ;"

SQL = "SELECT COUNT(*) " _
	& " FROM company c, visitorClickLog vcl " _
	& " WHERE c.intID = vcl.intCompanyID " _
	& " AND c.intID =  " & request("companyID") _
	& " AND vcl.dteCreated > #" & date() & " 00:00:00" & "# AND vcl.dteCreated < #" & date() & " 23:59:59" & "#  ;"

SQL = "SELECT COUNT(*) " _
	& " FROM company c, visitorClickLog vcl " _
	& " WHERE c.intID = vcl.intCompanyID " _
	& " AND c.intID =  " & request("companyID") _
	& " AND format(vcl.dteCreated, 'short date') = #" & date() & "# ;"

response.write SQL & "<BR><BR>"

set mySQL = Conn.Execute(SQL)

Dessa tre fungerar.

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)