Ho mysql db collegato al server SQL. Sul server SQL sto usando la procedura con DBCC TRACEON (8765) per eseguire query mysql. Una delle colonne è Date_entered, restituendo i valori in formato ISO YYYY-MM-DD. Quindi in Excel ho una connessione dati per eseguire questa procedura. Il problema è che Date_entered in Excel, anche se è nel formato AAAA-MM-GG non è riconosciuto in Excel come data. La conseguenza è che non posso raggruppare questo campo nella tabella pivot. Ho anche provato DATE_FORMAT in mysql, ma ancora senza fortuna in Excel.
Qualcuno ha un'idea per favore? Thx Petr
risposte:
1 per risposta № 1Sembra che Excel stia vedendo il valore come astringa di testo È possibile che lo spazio bianco iniziale stia facendo sì che Excel non riconosca la data: crea una nuova colonna e usa la funzione trim () per rimuovere gli spazi iniziali e finali, tentano di riformattare la data.
In alternativa, puoi solo forzare la forza e analizzare la stringa per l'anno, il mese e il giorno. Supponendo che la data sia sempre nel formato che hai specificato: AAAA-MM-GG, prova questo:
=DATE(LEFT(TRIM(A1),4),MID(TRIM(A1),6,2),RIGHT(TRIM(A1),2))
(questo presuppone che la tua data sia nella cella a1)
0 per risposta № 2
Puoi aggiungere una colonna e usare la formula = value () e assegnarla alla colonna Date_entered
0 per risposta № 3
Sotto la query mysql potrebbe aiutare:
SELECT date_format(str_to_date("2014-10-24","%Y-%m-%d"), "%m/%d/%Y") as FormattedDate;
0 per risposta № 4
Alla fine ho risolto il mio problema modificando la procedura su SQL server per:
BEGIN
DBCC TRACEON(8765);
SELECT *,CAST(CAST(year(calldate) AS varchar) + "-" + CAST(month(calldate) AS varchar) + "-" + CAST(day(calldate) AS varchar) AS DATETIME) as calldate2, datename(dw,calldate) as den
FROM OPENQUERY(SugarCRM, "SELECT * FROM crm.acm_ivr" );
END;
Questa particolare parte del codice "converte" la data mysql calldate
fino ad oggi riconoscibile da MS Excel calldate2
:
CAST(CAST(year(calldate) AS varchar) + "-" + CAST(month(calldate) AS varchar) + "-" + CAST(day(calldate) AS varchar) AS DATETIME) as calldate2