2016-06-01 60 views
6

La mia tabella nell'alveare ha una data di deposito nel formato "2016/06/01". ma trovo che non sia in contrasto con il formato di "2016-06-01". Non possono confrontare per esempio. Entrambi sono string. Quindi voglio sapere come renderli in harmory e possono confrontarli. Oppure, dall'altra parte, come modificare "2016/06/01" a "2016-06-01" in modo che possano essere confrontati.Come modificare il formato della data nell'alveare?

Molte grazie.

+0

Una buona domanda include informazioni su ciò che hai provato a risolvere il problema. Questa domanda non mostra alcuno sforzo di ricerca - nemmeno Google "modifica il formato della data nell'alveare" - quindi in realtà non dovrebbe attrarre i rispondenti. – Noumenon

+1

@Noumenon potresti aver fornito il link, http://www.cloudera.com/documentation/cdh/5-1-x/Impala/Installing-and-Using-Impala/ciiu_datetime_functions.html –

risposta

10

Per convertire data stringa da un formato ad un altro è necessario utilizzare due funzioni data di alveare

  1. unix_timestamp(string date, string pattern) stringa di tempo convertito con dato modello di unix timestamp (in secondi), restituisce 0 se fallisce.
  2. from_unixtime(bigint unixtime[, string format]) converte il numero di secondi da unix epoca (1970-01-01 00:00:00 UTC) ad una stringa rappresenta il timestamp di quel momento nella corrente fuso orario del sistema .

Utilizzando le due funzioni precedenti è possibile ottenere il risultato desiderato.

L'ingresso e l'uscita di esempio può essere visto da sotto: enter image description here

La query finale è

select from_unixtime(unix_timestamp('2016/06/01','yyyy/MM/dd'),'yyyy-MM-dd') from table1; 

dove tabla1 è il nome della tabella presente nel mio database alveare.

Spero che questo ti aiuti !!!

2

Usa:

unix_timestamp(DATE_COLUMN, string pattern) 

Il comando sopra dovrebbe aiutare a convertire la data in formato timestamp Unix che si possono formattare come si desidera utilizzare il Simple Date Function.

Date Function