Date

lunedì 03 maggio 2004 - 10.07

Seagull Profilo | Newbie

all'interno del mio database Access ho sviluppato una query parametrica che mi sta creando dei problemi con la gestione delle date, più specificatamente con il formato. Tra le tante funzionalità della query, essa mi consente anche di selezionare i record che sono stati inseriti nell'intervallo tra due date. All'interno della tabella Films, in un campo che ho nominato DataAgg la data mi viene visualizzata nel formato gg/mm/aaaa; però quando la query viene eseguita (è inserita nel CommandText) dalla routine della mia applicazione asp, la data, mi viene elaborata nel formato mm/gg/aaaa.
come potrei fare in modo che mi venga elaborata nel formato gg/mm/aaaa ?

Questa è la parte, riguardante le date, della query di selezione:

.....
And ([pLowDate] Is Null Or (Films.DataAgg>=[pLowDate]))
And ([pHiDate] Is Null Or (Films.DataAgg<=[pHiDate])))

P.S. Potrebbe trattarsi di un bug strutturale delle ADO Type Libraries ???

Brainkiller Profilo | Guru

Hai del codice d'esempio da postare ?
Di solito quando si fa una query in cui si restituisce un range si usa la clausola BETWEEN.
Prova a guardare questo Thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=984

ciao
david

Seagull Profilo | Newbie

Ciao..

Non uso la clausola BEETWEN perchè, quando faccio faccio la ricerca nel range di date, mi esclude i dati inserti nella seconda data (ex: se faccio una ricerca dei dati inseriti tra il 15/03/2004 ed il 13/04/2004, mi seleziona e restituisce i dati solo fino al 12/04/2004).

Cmq tu cosa mi suggeririresti per la situazione del formato?

Brainkiller Profilo | Guru

Relativamente al formato non saprei, io ho sempre lavorato così.
SQL Server o Oracle ti permettono più flessibilità visto che hanno funzionalità apposta per la conversione della data da/in vari formati.

La Between comunque usa maggiore uguale e minore uguale quindi con gli estremi inclusi, se non te li prende c'è qualche problema sui dati.

ciao
david

Seagull Profilo | Newbie

OK...grazie lo stesso

trinity Profilo | Guru

Non so se vi può essere di aiuto ma io quando devo utilizzare la clausola BETWEEN i campi data del mio database sono formattati in yyyy/MM/gg se invece utilizzo la formattazione della data in italiano il BETWEEN non mi funziona. Questo però l'ho provato su database Mysql e non su Oracle o Sql server 2000.

ciao
Fabio

Seagull Profilo | Newbie

Ciao Fabio

Ho anche provato a cambiare il formato del campo data, ma il mio è un problema che riguarda il passaggio delle date(LowDate e HiDate) allaq uery di selezione; Access, a differenza di SQL o Oracle, con le date è un pò bastardo nel senso che le visualizza nel formato gg/mm/aaaa però le gestisce nel formato anglosassone che è mm/gg/aaaa

Grazie

trinity Profilo | Guru

Allora tra una data e l'altra inserisci il segno #
esempio: BETWEEN #" & datainiziomese & "# AND #" & datafinemese &"#

spero che ti possa servire

Seagull Profilo | Newbie

Ciao

Mi rendo conto di non essere stato abbastanza chiaro. Il problema, credo, non sia nell'utilizzo della clausola BETWEEN all'interno della query di selezione, che ho sostituito con le clausole >= e <= e che funzionano bene; ma nel passaggio della date,(che inserisco nel mio form asp) alla query stessa e che, nonostante nel database Access mi vengano visualizzate nel formato gg/mm/aaaa, vengono gestite dallo stesso Access nel formato mm/gg/aaaa.

trinity Profilo | Guru

Certo per fare delle query in sql tra date devi sempre utilizzare il formato yyyy/MM/gg.

ciao
Fabio
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5