29 messaggi dal 17 settembre 2001
Ciao ragazzi,

ho creato una select come segue:

SELECT * FROM Conferenze where CAST(FLOOR(CAST(Data AS float)) AS datetime) = '2008-06-28'

Cosi funziona. Mi estrapola i dati che mi servono. Però devo dargli in pasto una data praticamente in formato japponese, anno/mese/giorno.

Io invece dovrei fare cosa del tipo :

SELECT * FROM Conferenze where CAST(FLOOR(CAST(Data AS float)) AS datetime) = '28-06-2008'

in Giorno/Mese/Anno, cioè in formato italiano.


Sapete come posso fare?

Grazie mille,

Luca.
17 messaggi dal 04 ottobre 2007
ciao,
dipende dalla lingua del DB etc, etc... puoi crearti una funzione chiamata DataperDatabase dove ti trasforma la data in yyyy-mm-dd (formato america) e ti restituisce una stringa "{d '2008-06-30'}" (formato data per SQL) o altrimenti una funzione di formattazione delle date. all'inizio può sembrare lungo il procedimento, ma in corso d'opera ti semplifica la vita così da staccare il tuo prodotto dal database (ovviamente implementando la funzione dataperdatabse)

Ciao
29 messaggi dal 17 settembre 2001
Ciao,Grazie per la spiegazione. Quindi intendi una funzione sql? Puoi farmi un esempio? devo usare "convert"?

Come faccio poi a richiamare la funzione da SELECT * , posso lanciarla da c#?

Grazie ancora,

Luca.
17 messaggi dal 04 ottobre 2007
Ciao,
la funzione non la devi implementare in SQL, ma semplicemente nel programma o sito web che realizzi. In questo modo puoi staccare l'applicativo da eventuale database non preoccupandoti più della base dati.

E.s. (che è sempre la migliore cosa... in vb mi viene meglio!)

private function DataPerDatabase (Data, TipoDatabase as string) as string
select case tipodatabase
case "ACCESS"
.
.
.
case "SQLSERVER"
DataPerDatabase = "{d '" + Format(Data, "yyyy-mm-dd") + "'}"
case "ORACLE
.
.
.
end select
end function

quando apri un qualsiasi recordset puoi costruire la stringa in Sql facendo

sql = "SELECT * FROM ciccio WHERE c1 = " & dataperdatabase("12/08/2008")
rs.open sql

Adesso adattalo al tuo linguaggio che utilizzi.

P.S. Visto ciò, puoi crearti una libreria e inserire la funzione per la data, il testo, i numeri e qualsiasi altra cosa. In questo modo puoi referenziare la libreria in qualsiasi lavoro da te realizzato e risolvi qualsiasi problema di compatibilità con i db.

Ciao
308 messaggi dal 06 maggio 2003
Come la lanci la stringa SQL?

Se fai un executenonquery ti basta fare una cosa di questo tipo:

DateTime dataWhere = DateTime.Parse("12/08/2008")
string sql = "SELECT * FROM Conferenze WHERE data = '"+ dataWhere.ToString("yyyy-MM-dd") +"'"

Se usi un DateTime puoi girartelo come vuoi usando la funzione "ToString" e impostando il formato di output

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC