come faccio a inswerire una WHERE di data in questa query ?
ovvero che mi selezioni sono i prodotti dove la data (DateSF) ricade nell'ultimo mese ?codice:strSQL="SELECT * FROM products where new='1' ORDER BY tip_IT DESC"
come faccio a inswerire una WHERE di data in questa query ?
ovvero che mi selezioni sono i prodotti dove la data (DateSF) ricade nell'ultimo mese ?codice:strSQL="SELECT * FROM products where new='1' ORDER BY tip_IT DESC"
qualcosa tipo
strSQL="SELECT * FROM products where new='1' AND month(dateSF) = " & month(date()) & " ORDER BY tip_IT DESC"
dovrebbe estrarti tutti i record del mese corrente
Cacca!
mi da errore
Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/wireless/it/news.asp, line 158
su questa riga : rs.Open strSQL, objConn, 3,3
codice:<% 'APERTURA CONNESSIONE CON IL DATABASE SENZA DSN Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/fpdb/wire_products.mdb") strSQL="SELECT * FROM products where new='1' AND month(DateSF) = " & month(date()) & " ORDER BY tip_IT DESC" set rs=server.CreateObject("ADODB.recordset") rs.Open strSQL, objConn, 3,3 %>
prova così
strSQL="SELECT * FROM products where new='1' AND month(dateSF) = month(date()) ORDER BY tip_IT DESC"
Cacca!
e se volessi allargare a 2 mesi ?
e poi?? te lo faccio io il programma???Originariamente inviato da zeweb
e se volessi allargare a 2 mesi ?ti consiglio un corso di SQL!!!
mese corrente + mese successivo
strSQL="SELECT * FROM products where new='1' AND (month(dateSF) = month(date()) OR month(dateSF) = month(date()) + 1) ORDER BY tip_IT DESC"
mese corrente + mese precedente
strSQL="SELECT * FROM products where new='1' AND (month(dateSF) = month(date()) OR month(dateSF) = month(date()) - 1) ORDER BY tip_IT DESC"
il concetto è semplice:
premesso che la funzione month(campo_data) ti restituisce il valore del mese della data contenuta nel campo_data, gli stai dicendo che questo valore nel campo dateSF deve essere uguale al valore del mese corrente (la funzione date() ti ritorna la data di oggi) oppure del mese prossimo (month(date()) + 1)
o precedente nell'altro esempio
Cacca!
Grazie, cmq !![]()
Grazie per l'aiuto ma non funziona perchè i prodotti che hanno nel campo DataSF una data di Dicembre 2004 (22-dic-2004) non li vede !
![]()
giusto! non ci avevo pensatoOriginariamente inviato da zeweb
Grazie per l'aiuto ma non funziona perchè i prodotti che hanno nel campo DataSF una data di Dicembre 2004 (22-dic-2004) non li vede !
![]()
![]()
allora dovresti prendere
mese corrente + mese successivo
strSQL="SELECT * FROM products where new='1' AND (month(dateSF) = month(date()) OR month(dateSF) = month(date() + 31)) ORDER BY tip_IT DESC"
mese corrente + mese precedente
strSQL="SELECT * FROM products where new='1' AND (month(dateSF) = month(date()) OR month(dateSF) = month(date() - 31)) ORDER BY tip_IT DESC"
che dovrebbe prendere il mese della data di oggi - (o +) 31 giorni; in questo modo si calcola lui a che mese arrivi e fa automaticamente anche il passaggio dell'anno
Cacca!
Salve a tutti,
dando un'occhiata al codice mi sono chiesto... ma cosa succederà con questo codice il giorno 31 Gennaio? Visto che il mese di Febbraio ha 28 o 29 gg, aggiungendovi 31 giorni non scatterà direttamente al mese di Marzo? Anche al 31 marzo visto che aprile ha 30 gg, aggiungendo 31 gg.. scatterà direttamente il mese di maggio... giusto?
Non conosco ancora bene la sintassi sql, ma nn sarebbe meglio utilizzare l'operatore modulo sul mese, in pratica mi spiego meglio, aggiungiamo il valore 1 al mese corrente ed applichiamo sul risultato il modulo di 12, esempio: (questo si puo' fare se sql utilizza il conto dei mesi come in java che partono da zero, gennaio = mese 0 ecc..) siamo nel mese di dicembre, dicembre + 1= 12 modulo 12 = 0 (zero cioè il mese di gennaio), invece ad esempio in giugno: month(date() + 1) % 12 = 6 (il sei equivarrebbe al mese di luglio..)
Spero di aver almeno reso l'idea.. oppure ho sbagliato tutto??![]()