82 messaggi dal 19 ottobre 2012
Buongiorno a tutti, ho una tabella con un campo i cui dati sono in questo formato:


2010-12-16 00:00:00.000
2011-01-01 00:00:00.000
2011-01-16 00:00:00.000
ecc.ecc.


con questa stringa

LEFT(dbo.NAV_MovimentiContabiliCommesse.[Document Date], 11) AS Data_Documento

estraggo la data ma la converte in

Dec 16 2010
Jan 1 2011
Jan 16 2011

Come posso fare con la stringa inserita ad estrarre la data nel formato 20101216, ecc?

Grazie 1000
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
penso che il LEFT non sia necessario, infatti non è importante che la data ti arrivi dal database già nel formato corretto.

Il formato puoi deciderlo dopo, quando è il momento di presentare la data a schermo. Il tipo DateTime dispone di un apposito metodo ToString che ti permette di passargli il formato desiderato.

Volendo rappresentare la data come nell'esempio 20101216, potresti fare:
var dataFormattata = tuaData.ToString("yyyyMMdd");


Ecco una guida ai vari tipi di formato con cui puoi rappresentare un valore del tipo DateTime.
http://msdn.microsoft.com/it-it/library/8kb3ddd4(v=vs.110).aspx

ciao,
Moreno
Modificato da BrightSoul il 09 dicembre 2014 13.55 -

Enjoy learning and just keep making
82 messaggi dal 19 ottobre 2012
Grazie Moreno. Sto provando ma mi esce un errore. Ti aggiorno dopo sull'esito.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Giorgio,
posta il testo dell'errore.
Se stai leggendo il valore con un DataReader, magari devi giusto fare il casting a DateTime prima di poter usare quell'overload di ToString.

In VB.NET
Dim dataFormattata = CDate(dataReader("campoData")).ToString("yyyyMMdd")
In C#
var dataFormattata = ((DateTime) dataReader["campoData"]).ToString("yyyyMMdd");


ciao,
Moreno
Modificato da BrightSoul il 09 dicembre 2014 19.33 -

Enjoy learning and just keep making
252 messaggi dal 03 novembre 2003
Ma ci son diversi modi per formattare le date.
Anche in comandi SQL.

Prova in C# così, quando hai il dato... ma SOLO quando hai il valore
altrimenti entra in errore!!
Ovviamente gestisci un IF

string DATA = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(Dr["MyDateValue"] + "")));

La struttura della formattazione la gestsisci come vuoi:
yyyy-MM-dd
yyyyMMdd
...


Bye

it's not difficult to write, but is difficult write that you mean
82 messaggi dal 19 ottobre 2012
Grazie a tutti della risposta e scusate se rispondo solo ora. Ho sempre il problema.
Mi spiego meglio con un esempio: la colonna da cui devo estrarre la data ha i dati in questo formato:

2013-05-11 00:00:00.000


con il comando left estraggo la data ma la restituisce in questo formato:

Nov 5 2014

mentre io la voglio in formato DD/MM/YYYY

Utilizzo SQL Server per la query
Grazie
82 messaggi dal 19 ottobre 2012
RISOLTO:

Ciao a tutti. Ho risolto il problema in questo modo:


CONVERT (varchar(10); CONVERT (datetime; dbo.NAV_MovimentiContabiliCommesse.[Posting Date]; 103); 103)




Spero sia corretto e sia utile a qualcun altro


Grazie per il supporto

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.