Condividi tramite

Trasformare date

Anonimo
2013-06-03T10:07:56+00:00

Salve, ho una tabella dove le date sono in formato aaaammgg, vorrei fare una query che mi restituisca i valori delle celle date come ggmmaaaa, come devo formularla?

Grazie

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-06-03T10:59:55+00:00

Questa quale?

Se ti riferisci alla prima, che utilizza DateSerial, non esiste una funzione DateSerial in T-Sql ma la puoi ricavare. Un articolo: equivalent of DateSerial() in T-SQL

In T-SQL esiste poi la funzione Convert che potrebbe fare al caso tuo. Nel seguente articolo la conversione di una stringa in formato data è spiegata in maniera abbastanza esauriente: SQL DateTime Conversion

Tuttavia continuo a non capire se ciò che vuoi in output sia una data o una stringa. Nel secondo caso

le funzioni Left e Right esistono anche in SQL mentre al posto della funzione Mid puoi utilizzare SubString: String Functions (Transact-SQL)

David

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-06-03T10:27:18+00:00

    Questa va bene, mi farebbe comodo anche un istruzione di tipo standard sql che possa utilizzare in ambienti non access.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-06-03T10:17:11+00:00

    Ciao Giacomo Mancini,

    un modo potrebbe essere quello di utilizzare all'interno della tua query la funzione DateSerial. Ipotizzando che il campo attuale nella tua tabella si chiami stData, questa espressione lo converte in una data

    DateSerial(Left([stData];4);Mid([stData];5;2);Right([stData];2))

    p.s.: rileggendo la tua domanda mi è venuto qualche dubbio su come tu abbia memorizzato i dati e su cosa vuoi effettivamente ottenere.

    Se per aaaammgg tu intendi 20130603, allora l'espressione indicata restituisce 03/06/2013.

    Se invece il formato che vuoi ottenere è effettivamente ggmmaaaa allora modifica l'espressione in

    Right([stData];2) & Mid([stData];5;2) & Left([stData];4)

    David

    La risposta è stata utile?

    0 commenti Nessun commento