Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Query con data

  1. #1
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187

    Query con data

    Ciao a tutti,
    dovrei dire alla query di mostrare solo i campi uguali o maggiori di un determinato campo data nel DB es.

    SELECT * FROM TABELLA WHERE CAMPOTESTO=34 AND CAMPOFLAG=TRUE AND CAMPODATA_FINE=12/10/2005
    ecco io dovrei dire al CAMPODATA_FINE uguale o maggiore... si può fare una cosa del genere osto sbagliando tutto? :master:

  2. #2
    Certo che si può: basta mettere >= o > al posto di = ...

    Solo, occhio ai formati data, che spesso sono richiesti in forma americana nelle query: Mese/giorno/anno invece di Giorno/mese/anno...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Ciao allora ho cambiato un pò di cose ora dovrei fare una cosa del genere:

    SQL = "SELECT * FROM LISTINO WHERE OFFERTA=TRUE AND DATA_INIZIO =>" & DATE() - 7 & " AND DATA_FINE <=" & DATE() + 7
    ossia vorrei far vedere solo i prodotti in offerta e compresi nelle date, in questo caso essendo al 17/10/2005 dovrei visualizzare tutte le offerte che rientrano nell'arco di tempo che va dal 10/10/2005 al 24/10/2005 ma il mio problema è non solo le offerte che inziano il 10 e finiscono il 24 ma tutte quelle che hanno come arco temporale queste date...
    Spero di essere stata chiara nella spiegazione :master:


  4. #4
    Un trucco generale: quando non si è sicuri che una query funzioni bene, cela ri fa stampare (Response.Write(SQL)) e poi la si prova direttamente sul database, in modo da avere la sicurezza che vada bene.

    Oppure puoi fare il contrario: vai in Access (immagino tu stia usando Access) e crea una nuova query, che ti restituisca esattamente quello che vuoi, poi vai a vedere come è scritto l'SQL che ci corrisponde, usando la modalità SQL dal primo pulsante della toolbar.

    In questo modo ti rendi conto se va tutto bene, perchè per esempio mi sembra di ricordare che:

    1) le date nelle query di access vanno racchiuse tra grigliette : #30/01/2005#

    2) sono sicuro che se fai un calcolo non puoi concatenare, ameno si mettere delle parentesi: ... & (DATE()-7) &

    e altro che ora non mi viene in mente.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    si lo so, però il mio è proprio sapere la sintassi per "dalla data alla data", insomma per prendere un periodo di tempo.

  6. #6
    Originariamente inviato da nadia79
    si lo so, però il mio è proprio sapere la sintassi per "dalla data alla data", insomma per prendere un periodo di tempo.
    La sintassi per "dalla data alla data" NON è quello che serve a te, visto che tu vuoi applicare questa condizione a DUE DIVERSI campi, e non allo stesso, caso in cui potresti usare la sintassi "dalla data alla data".

    Select Data From Listino
    Where Data BETWEEN 'inizio' and 'fine';

    Solo che questo applica la condizione ad UN SOLO CAMPO, che non è affatto quello che vuoi tu.

    Tu devi usare il > e < (o >= e <= se vuoi includere anche i giorni scritti) perchè hai necessità di applicarli a campi DIVERSI.

    Dopodichè, hai provato intanto con le correzioni che ti ho segnalato, quella delle parentesi e quella delle grigliette, ed hai provato a mettere le date nel formato MM/GG/AAAA ?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Ecco ora ho capito bene quello che voglio fare!!!

    Devo prendere dalla settimana alla settimana es. dal 17/10 al 24/10

    Questo mi restituisce il giorno corrente <%=WeekDay(date)%> ed oggi quindi restituisce 3 che corrisponde a martedì.

    come prendere dalla primo giorno della settimana all'ultimo giorno della settimana?

  8. #8
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Cerco di essere più precisa:
    come posso ricavare il lunedì della settimana corrente? :master:



  9. #9
    Così:

    (dataDiOggi) - (NumGiornoSett(dataDiOggi)) + 2

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  10. #10
    Utente di HTML.it L'avatar di nadia79
    Registrato dal
    Aug 2005
    Messaggi
    187
    Risolto!
    Almeno così mi sembra, ho realizzato questo costrutto IF:

    codice:
    If WeekDay(date()) = 1 Then 
    app = date()
    Elseif WeekDay(date()) = 2 Then 
    app = date() - 1
    Elseif WeekDay(date()) = 3 Then 
    app = date() - 2
    Elseif WeekDay(date()) = 4 Then 
    app = date() - 3
    Elseif WeekDay(date()) = 5 Then 
    app = date() - 4
    Elseif WeekDay(date()) = 6 Then 
    app = date() - 5
    Elseif WeekDay(date()) = 7 Then 
    app = date() - 6
    End if
    poi nella SELECT data_inizio= app e data_fine= app +8 in questo modo ottengo la settimana corrente dalla domenica al lunedì successivo!!!

    Secondo voi è buona o no come idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.