2016-06-01 13 views
6

Mój stół w ulu ma pole daty w formacie "2016/06/01". ale uważam, że nie jest to zgodne z formatem "2016-06-01". Nie można ich porównać na przykład. Oba są ciągami. Więc chcę wiedzieć, jak zrobić je w harmonii i można je porównać. Lub z drugiej strony, jak zmienić "2016/06/01" na "2016-06-01", aby mogli porównać.Jak zmienić format daty w ulu?

Wielkie dzięki.

+0

Dobre pytanie zawiera informacje o tym, co próbowano rozwiązać problem. To pytanie nie pokazuje żadnych wysiłków badawczych - nawet Googling "zmienić format daty w ulu" - tak naprawdę nie powinien przyciągać odpowiedzi. – Noumenon

+1

@Noumenon mógłbyś podać link, http://www.cloudera.com/documentation/cdh/5-1-x/Impala/Installing-and-Using-Impala/ciiu_datetime_functions.html –

Odpowiedz

10

Aby przekonwertować datę ciąg z jednego formatu na inny trzeba użyć dwóch dat funkcję ula

  1. unix_timestamp(string date, string pattern) czas konwersji ciąg z danego wzoru na uniksowy znacznik czasu (w sekundach), return 0 if kończy się niepowodzeniem.
  2. from_unixtime(bigint unixtime[, string format]) konwertuje liczbę sekund od epoki Uniksa (1970-01-01 00:00:00 UTC) do ciąg reprezentujący znacznik czasowy tej chwili w aktualnej strefy czasowej systemu .

Korzystanie z powyższych dwóch funkcji umożliwia osiągnięcie pożądanego rezultatu.

Wejście i wyjście próbki mogą być widoczne od dołu obrazu: enter image description here

Ostateczna zapytanie jest

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

gdzie tabela1 to nazwa tabeli obecne w mojej bazy danych ula.

Mam nadzieję, że ci to pomoże !!!

2

Zastosowanie:

unix_timestamp(DATE_COLUMN, string pattern) 

Powyższa komenda pomoże przekonwertować datę na format uniksowy znacznik czasu, który można sformatować, jak chcesz przy użyciu Simple Date Function.

Date Function