Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Formato data sconosciuto
venerdì 27 giugno 2008 - 17.33
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
base_b
Profilo
| Newbie
27
messaggi | Data Invio:
ven 27 giu 2008 - 17:33
Salve a tutti...
ho un problemino!
per poter estrapolare dati per le statistiche della qualità, devo pescare questi dati da oracle tramite collegamento ODBC (non so se questo è interessante o quello che ho scritto ha un senso compiuto, prendetelo col beneficio del dubbio, è venerdì sera!).
Il campo data ha un formato a me ignoto, e chi mi deve dire tradurlo è spaparanzato al sole in un isola tropicale...
questi che seguono sono alcuni esempi della cifra che compare. Non so dove sbattere la testa. Conoscete già questo tipo di dato? Sapete come trasformarlo in uno standard (tipo xx/xx/xxxx)?
Task_Day
633473568000000000
633475296000000000
633476160000000000
ora che ho fatto copia-incolla noto che qualcosa è variato. X es. la prima riga io la leggo così: 6,33473568E+17 e così via.
Dimenticavo: elaboro questi dati in Access 2003.
grazie a tutti!
base
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
ven 27 giu 2008 - 17:41
Probabilmente puoi ottenere il formato corretto usando il metodo DateTime.FromBinary, i valori restituiti per le tre stringhe di esempio sono rispettivamente
26/5/2008
28/5/2008
29/5/2008
Luca
base_b
Profilo
| Newbie
27
messaggi | Data Invio:
lun 30 giu 2008 - 09:18
Grazie 1000 Luca!
E' un metodo che non conosco, come lo dovrei usare? (Sto lavorando ancora in una query)
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
lun 30 giu 2008 - 11:00
Non so come funzionino i database (non ho esperienza in merito), il metodo DateTime.FromBinary è una funzione del .Net FrameWork.
I numeri che hai in pratica sono le unità di 100 nanosecondi che sono trascorse da una data prefissata. Ad esempio 633473568000000000 unità di 100 nanosecondi corrispondono a 63347356800 secondi (modulo 60 = 0), che sono 1055789280 minuti (modulo 60 = 0), che sono 17596488 ore (modulo 24 = 0) che sono 733187 giorni. In questo modo puoi ricavare Anno\Mese\Giorno HH.MM.SS del valore intero che hai (anche se, ripeto, nel tuo caso non saprei come muovermi...)
Luca
base_b
Profilo
| Newbie
27
messaggi | Data Invio:
lun 30 giu 2008 - 17:25
Forse ho trovato una soluzione.... nella query ho inserito la seguente formula:
Espr1: DateAdd("g" ;([Task_Day]/10000000/60/60/24)-693595;"01/01/1900")
dove Task_day era la mia stringa di partenza, divisa fino ad arrivare ad avere i giorni.
A questa cifra ho tolto 693595, che è una costante (differenza fra il 01 gen. 0000 dopo cristo e il 01 gennaio 1900). Infatti se uso il DateAdd con una data 01/01/00, Access crede sia il 2000 (un millenium bug al contrario...). A questo punto mi rimane il n° di giorni fra la data chi mi interessa e il 1 genn. 1900. Applico il DateAdd e mi compare la data corretta.
E' stato un duro lavoro ma che soddisfazioni!
PS: questa spiegazione per chi si trovasse nella mia stessa situazione.
PS2: lunedì prox, quando tornerà chi mi ha dato i dati da estrapolare senza la chiave di codifica, dirò che non ho trovato una soluzione e lo farò penare un pò anche lui...
Torna su
Stanze Forum
Elenco Threads
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 !