Estrazione dati SqlServer2005 -> Excel...there is a problem!!!

venerdì 23 maggio 2008 - 19.43

LuxSkyWalker Profilo | Junior Member

Ciao a tutti!!!

Sono un giovane programmatore con poca esperienza e mi trovo davanti ad un problema che non so come risolvere.

Lavoro ad un applicativo ASP.NET 2.0 / C#...devo gestire l'estrazione tramite una vista e un dts di alcuni dati presenti su una tabella di SqlServer2005.

In pratica questo applicativo estrae alcuni dati dal db e riempie un excel: mentre tutti i dati che estrae non mi danno problemi, ho qualche fastidio con i datetime: in pratica devo scrivere sull'excel la data nel formato GG/MM/AAAA mentre ovviamente il formato di un datetime è AAAA-MM-GG HH:MM:SS.

Per farvi capire qual'è il problema vi scrivo ora la query di estrazione del dts.

select isnull(convert(char(10), DataInizio,103), '') as DataInizio,....
from tabella

Ovviamente estraggo molti più dati ma questo è sufficiente per farvi capire.

Converte in char(10) la data (che quindi sarà GG/MM/AAAA e se è null mette al posto la stringa vuota mentre se è valorizzata la scrive sull'excel. E fino a qui nessun problema.

Sull'excel però la data viene salvata in formato testo e quindi non è possibile applicarvi i filtri, o meglio è possibile ma non restituiscono nulla se applico il filtro >= ad una certa data...funzionano solo se il filtro applicato è del tipo CONTIENE/NON CONTIENE/UGUALE A/DIVERSO DA.

Io ho necessita di salvare la data nel formato corrente (GG/MM/AAAA) ma dev'essere salvata sull'excel come data in modo da applicarvi i filtri necessari.

Come devo scrivere la query che mi permette di fare questo???

Grazie,


LuxSkyWaler
Junior Developer .NET

alx_81 Profilo | Guru

>Ciao a tutti!!!
Ciao!

>Io ho necessita di salvare la data nel formato corrente (GG/MM/AAAA)
>ma dev'essere salvata sull'excel come data in modo da applicarvi
>i filtri necessari.
A mio avviso sbagli l'approccio. Tu cerchi di convertire il dato (che è all'inizio tipizzato come Data) in carattere. Quando esporti verso l'excel, esso verrà salvato come stringa e quindi come carattere (cella text). Devi passare all'excel la data in formato ISO YYYYMMDD hh:mm:ss e non preoccuparti della formattazione.
Però è vero anche che il tuo excel di destinazione dovrà avere la colonna predisposta per la data impostata come tipo Data. Altrimenti vai sempre ad inserire la tua data come stringa.
>
>Come devo scrivere la query che mi permette di fare questo???
Non usare nemmeno il cast, scrivi il campo com'è (ammesso che sia Datetime o SmallDateTime) e ricorda di impostare la colonna di destinazione a Data su Excel.
>
>Grazie,
Di nulla!
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

LuxSkyWalker Profilo | Junior Member

Ciao...
Innanzitutto grazie per avermi risposto...probabilmente non mi sono spiegato bene, il problema non era cosi semplice come l'hai fatto tu ma ora è risolto...purtroppo le specifiche del cliente per cui lavoro dicevano che io dovessi passare all'excel le date in formato stringa ed è proprio questa l'origine dei miei problemi...ma oggi ho risolto prendendo spunto da quanto mi hai scritto tu(grazie) che era probabilmente la soluzione più immediata e più semplice al problema...purtroppo i clienti hanno sempre delle pretese che sono un po' strane...e purtroppo il cliente ha sempre ragione!!!Ma diciamo che sono riuscito a farlo ragionare e me la sono cavata!!!
Ora so che ho un altro alleato per risolvere i miei problemi (dovuti la maggior parte delle volte alla mia inesperienza!!!).

Ti ringrazio ancora....

Ciao!!!
LuxSkyWaler
Junior Developer .NET

alx_81 Profilo | Guru

>Ciao...
Ciao!

>Innanzitutto grazie per avermi risposto...probabilmente non mi
>sono spiegato bene, il problema non era cosi semplice come l'hai
>fatto tu ma ora è risolto...purtroppo le specifiche del cliente
>per cui lavoro dicevano che io dovessi passare all'excel le date
>in formato stringa ed è proprio questa l'origine dei miei problemi...ma
>oggi ho risolto prendendo spunto da quanto mi hai scritto tu(grazie)
>che era probabilmente la soluzione più immediata e più semplice
>al problema...
Non conoscevo la situazione cliente. Diciamo che ho provato a darti un consiglio

>purtroppo i clienti hanno sempre delle pretese che sono un po' strane...
Eccome

>e purtroppo il cliente ha sempre ragione!!!
Ni.. bisonga anche istruirlo e fargli capire che a volte una soluzione può essere raggiunta in maniera più semplice. Basta che ottenga il risultato che gli serve

>Ma diciamo che sono riuscito a farlo ragionare e me la sono cavata!!!
>Ora so che ho un altro alleato per risolvere i miei problemi (dovuti la maggior parte delle volte alla mia inesperienza!!!).
Eccomi
>
>Ti ringrazio ancora....
Di nulla!
Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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