Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6][SQL] - Problema stupido con query in base a data

Salve gente
Dim Filtro as Date
Dim Limite as date
Filtro = Date - 8
Set q(0) = db.OpenRecordset("SELECT * FROM Mercato WHERE concluso=True AND
data_offerta=" & Filtro & " ORDER BY data_offerta DESC")
e
Limite = Filtro-15
Set q(0) = db.OpenRecordset("SELECT * FROM Mercato WHERE concluso=True AND
data_offerta>" & Limite & " data_offerta<" & Filtro & "  ORDER BY
data_offerta DESC")
Bene, mi sapreste spiegare perchè non funzionano?
Non riesco a venirne fuori, scusate se vi rubo tempo per una idiozia :'(
Ciao a tuttti

 :'(
non č una idiozia, č una nozione: o la sai o non la sai, arrivarci per
"deduzione" č estremamente difficile.
perň ci saranno decine di migliaia di post, su usenet, che affrontano questo
problema: nella clausola where di sql le date vanno scritte in formato
"americano": mese/giorno/anno, magari con un cancelletto in testa e in coda.
in access, almeno. se allarghiamo il discorso la cosa si fa complicata...
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 in access, almeno. se allarghiamo il discorso la cosa si fa complicata...
Avevo pensato a qualcosa del genere, giuro. Ma la stanchezza per l'esame
sostenuto stamattina mi ha obnubilato la mente.
Grazie comunque per la dritta.
Eseguo!!!

Dim giorno as integer, mese as integer, anno as integer
giorno = Day(Date)
giorno=giorno-8
mese = Month(Date)
anno = Year(Date)
Filtro = CDate(mese & "/" & giorno & "/" & anno)
'il formato risultante è del tipo xx/yy/zzzz
Set q(0) = db.OpenRecordset("Select * FROM Mercato WHERE concluso=True AND
data_offerta=" & Filtro)
Ma nn funziona lostess, e nn ci capisco nulla.
Un link a qualche lettura? grazie mille...
Ciao

 Ciao

 #MM/GG/AAAA#
Si Lupo, hai perfettamente ragione, ma le avevo provate tutte senza
successo.
Evidentemente continuavo a sbagliare qualcosa.
Alla fine ho risolto con questo trucchetto (credo si tratti di hard-coding):
    Dim Scadenza As Date
    Dim Filtro As String
    Dim Limite As String
    'q(0) è un dao.recordset
    'N.B. una trattativa è scaduta se l'offerta è stata fatta 8 giorni prima
della data corrente
    Scadenza = DateAdd("d", -8, Date)
    giorno = Day(Scadenza)
    mese = Month(Scadenza)
    anno = Year(Scadenza)
    Filtro = mese & "/" & giorno & "/" & anno
    Scadenza = DateAdd("d", -23, Date)
    giorno = Day(Scadenza)
    mese = Month(Scadenza)
    anno = Year(Scadenza)
    Limite = mese & "/" & giorno & "/" & anno
    'Oggi
    Set q(0) = db.OpenRecordset("Select * FROM Mercato WHERE concluso=True
AND data_offerta=#" & Filtro & "#")
    'Ultimi 15 giorni
    Set q(0) = db.OpenRecordset("Select * FROM Mercato WHERE concluso=True
AND data_offerta>#" & Limite & "# AND data_offerta<#" & Filtro & "# ORDER BY
data_offerta DESC")
Grazie mille!!!
(brutta csa l'ignoranza :'( )

 (brutta csa l'ignoranza :'( )
giŕ.
pensa che potevi risolvere tutto con un format$(variabilechecontieneladata,
"mm/dd/yyyy")


 "mm/dd/yyyy")
Marň come te vojo bbene... hai perfettamente ragione :D
    Scadenza = DateAdd("d", -8, Date)
    Filtro = Format$(Scadenza, "mm/dd/yyyy")
    Scadenza = DateAdd("d", -23, Date)
    Limite = Format$(Scadenza, "mm/dd/yyyy")
fatto!