Newsgroup: it.comp.www.asp
Titolo: Estrarre dati in base alla data odierna

Salve ragazzi,
io uso attualmente:
<%@LANGUAGE = JScript%>
[...]
SELECT * FROM tabella WHERE anno = 2006
ma questo oltre a non estrarmi i dati più vecchi di un anno ma solo quelli 
del 2006, mi costringe ogni anno a cambiare in
SELECT * FROM tabella WHERE anno = 2007
SELECT * FROM tabella WHERE anno = 2008
e così via per l'eternità ... è possibile dirgli una cosa del tipo:
oggi è "datadioggi" , estrai i dati dal "datadioggi-1anno" ad oggi, 
ovviamente senza usare date precise.
Grazie, saluti
CinOp! 

 CinOp!
Ciao
-- 
AZ [Microsoft - .NET MVP]
Mia Home page: 
http://ciclismo.sitiasp.it
Asp.Net community: 
http://www.aspitalia.com
Il mio blog: 
http://blogs.aspitalia.com/az
 

 SELECT * FROM tabella WHERE anno = datepart(yy,getdate())-1
No, scusa hai ragione non ho specificato, il database è ACCESS, e io non 
vorrei prendere un anno specifico, 2006 o 2007 preferirei prendere una lasso 
di tempo, per esempio "l'ultimo anno" che oggi significherebbe dal 19 
Novembre 2005 al 19 Novembre 2006 , domani dal 20 Novembre 2005 al 20 
Novembre 2006 !
Ciao.
CinOp! 

 Ciao.


 
Ciao a tutti.
io faccio così:
seleziono la data di oggi con il date()
nel formato GG/MM/AAAA
la ricompongo nel formato AAAAMMGG in modo da avere un numero finito ed 
ordinato temporalmente
per selezionare la data di un anno fa la query:
select campo from tabella where campodata > AAAAMMGG-10000
funziona.
detto questo il moi problema è :
e se voglio selezionare i sei mesi prima?
col fatto che i mesi sono 12 e non 10 mi si incasina l'operazione se 
oggi è es. gennaio...
20070130-300=20079830

 20070130-300=20079830
Appunto, uso la dateadd di vbscript è ti togli ogni problema visto che puoi 
selezionare dagli anni ai secondi quanto togliere/aggiungere alla data ;)
http://www.morpheusweb.it/html/manuali/vbscript/vbscript_datetime_DateAdd.asp


 19/11/2005).
Andrea grazie, sei stato gentilissimo ma ... come ho detto nel primo post 
uso JScript, in ogni caso ... io ho questo codice con il quale riesco ad 
ottenere in qualche modo le date che m'interessano in base alla data 
odierna, esiste un modo per sfruttare queste date?:
    var Cn = new ActiveXObject("ADODB.Connection");
    var StrCn = "driver={Microsoft Access Driver (*.mdb)};dbq=" + 
Server.MapPath("database.mdb");
    var data = new Date();
    var annoprecedente = data.getFullYear() - 1;
    var annocorrente = data.getFullYear();
    Response.Write(annoprecedente + "/" + annocorrente);
*****a questo punto ho inserito le date che m'interessano, ovvero quest'anno 
e l'anno precedente, adesso esiste un modo per dire alla query di estrarre 
solo i record che nel campo "anno" corrispondono ad "annoprecedente" o ad 
"annocorrente " escludendo quindi tutti gli altri???????????*****
    Cn.Open(StrCn);
    var Sql = "SELECT anno, progord, azienda, importo, fatord, ccli, 
DAY(datord) AS giorno, MONTH(datord) AS mese, YEAR(datord) AS anno FROM 
sitoordini WHERE ccli = 'BAOBA' AND importo <> 0 AND NOT importo = fatord 
ORDER BY datord DESC";
Ciao.
CinOp!

 SELECT * FROM tabella WHERE anno = 2006
così al volo mi viene in mente di sfruttare il datediff di access, quindi
direttamente via query:
 ..."where datediff('d',tuadata,now())<366"
(non ricordo bene access ma dovrebbe essere così, se non è così la now sarà
simile così come la datediff)
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.