Conversione della data ggmmyyyy a yyyymmdd

mercoledì 31 dicembre 2008 - 13.11

the_driver Profilo | Senior Member

Ciao A tutti, come faccio a convertire il valore DATE? da ddmmyyyy devo impostarlo in yyyymmdd

Grazie

lbenaglia Profilo | Guru

>Ciao A tutti, come faccio a convertire il valore DATE? da ddmmyyyy
>devo impostarlo in yyyymmdd

Ciao Marco,

Puoi essere un po' meno ermetico?

1) Che DBMS utilizzi?
2) Cosa intendi con "valore DATE"? Puoi postare un esempio completo con la struttura di eventuali tabelle (CREATE TABLE...), alcune righe di prova (INSERT INTO...) ed il result set finale che vuoi ottenere?
3) Puoi descrivere meglio il problema?

>Grazie
A te.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

the_driver Profilo | Senior Member

Ciao grazie per la risposta,ehm si hai ragione forse sono stato troppo "ermetico"


Comunque, uso un sql server 2005

Per motivi tecnici non posso mostrarti la tabella,comunque ti posso dire che la tabella (creata con il managment studio) ha un campo "data" di tipo datetime.

Siccome devo migrare dei dati da un db ad un altro, chi dovrà ricevere la nuova tabella vuole tutte le date nel formato "inglese" mentre sul db sono memorizzate nel formato classico europeo (giorno mese anno).
Siccome ho già visto che questo lavoro può essere fatto via script (per esempio VB net con una cast in string), ho però la necessità di effettuare la conversione (se possibile) via sql o al più utilizzando SSIS.

Cosa mi consigli?

La tabella del DB di destinazione ha un campo datetime.


Ti ringrazio!

lbenaglia Profilo | Guru

>Per motivi tecnici non posso mostrarti la tabella,comunque ti
>posso dire che la tabella (creata con il managment studio) ha
>un campo "data" di tipo datetime.
>
>Siccome devo migrare dei dati da un db ad un altro, chi dovrà
>ricevere la nuova tabella vuole tutte le date nel formato "inglese"
>mentre sul db sono memorizzate nel formato classico europeo (giorno
>mese anno).
Fermo
Se il data type della colonna è datetime le date sono memorizzate come due coppie di interi da 4 byte ciascuna, pertanto NON AVRANNO ALCUN FORMATO.
Il formato YYYY-MM-DD hh:mm:ss.ms che ti viene restituito in fase di SELECT non è altro che una "rappresentazione visiva" comprensibile a noi umani (personalmente faccio fatica ad estrapolare la data da una coppia di interi ).

>Siccome ho già visto che questo lavoro può essere fatto via script
>(per esempio VB net con una cast in string), ho però la necessità
>di effettuare la conversione (se possibile) via sql o al più
>utilizzando SSIS.
Sarà compito dell'applicazione client formattare opportunamente le date in base alla lingua dell'utente autenticato in Windows specificata nelle Regional Options.

>Cosa mi consigli?
>
>La tabella del DB di destinazione ha un campo datetime.
A maggior ragione non devi fare alcun cast durante il travaso dei dati.

>Ti ringrazio!
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

the_driver Profilo | Senior Member

Grazie Mille ... Buon ANNO!

Teech Profilo | Expert

Con che strumento dei passare i dati ad un altro DB? Ed il DB di destinazione che tipo di dato utilizza per la data? Te lo chiedo perchè il fatto di visualizzare una data come dd/MM/yyyy oppure yyyyMMdd o ancora MM/dd/yy non dipende dal dato in se (che rimane sempre la data in esame) ma dalla formattazione che si vuole dare allo stesso: il dato di base rimane un DateTime visualizzato a seconda delle impostazioni/richieste.

Lo stesso principio vale per i numeri: il numero 9999 può essere visualizzato così com'è oppure con separatori (9.999) o ancora con 2 decimali (9999,00) o con decimali e separatori (9.999,00) ma il numero di base rimane sempre lo stesso.

Quello che mi chiedo è se vuoi che il dato, elaborato da una Stored Procedure o da una Vista (o altro), diventi una stringa o un numero per passarlo attraverso un file ad un altro applicativo?
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole

EDIT: Scusate ma abbiamo scritto insieme... Sono io che sono stato lento

lbenaglia Profilo | Guru

>Ed il DB di destinazione che tipo di dato utilizza per la data?
Datetime, l'ha scritto nella seconda risposta

>Quello che mi chiedo è se vuoi che il dato, elaborato da una
>Stored Procedure o da una Vista (o altro), diventi una stringa
>o un numero per passarlo attraverso un file ad un altro applicativo?
Se l'esportazione deve essere effettuata su file, io andrei di bcp in formato nativo, ottenendo un file binario senza alcun problema di formattazioni ed al tempo stesso massimizzando le prestazioni.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
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