Używam adaptera jdbc postgresql do migrowania pęczku danych do pola jsonb (postgres 9.4).JSONb daty: rzeczywiste daty wewnętrznie?
Po zaimportowaniu pola daty wyglądają prawidłowo, ale są wyświetlane w otoczeniu z podwójnymi cytatami. Czy istnieje sposób na stwierdzenie, czy są one rzeczywiście przechowywane wewnętrznie jako wartości daty? Jeśli są to ciągi, nie sądzę, aby wyszukiwanie zakresów było bardzo wydajne.
Na przykład wpis w properties
jsonb pola wygląda następująco:
"founded_on": "Sep 1, 2012 12:00:00 AM",
mogę teraz wyszukiwać za, powiedzmy,
SELECT CAST(properties->>'founded_on' AS DATE
i
SELECT extract('year' from cast(properties->>'founded_on' as timestamp))
i oba działają dobrze, ale nie mów mi, czy Postgres jest w trakcie reparacji wartości łańcucha w polu jsonb za każdym razem, jako datę.
Mogę utworzyć indeks, w którym rzucam te wartości do dat i używam go do wyszukiwania, ale wydaje się nieco nieelegancki. Naprawdę wolałbym wiedzieć, że przechowywana wartość to data. Liczby całkowite i pływaków wydaje się być ich rzeczywiste wartości rodzime, a nie ciągi, jak w nich:
shares_sold": 5900000,
"latitude": 33.561467,
Wszelkie uwagi wysoko cenione.
Dziękuję, ta odpowiedź jest doskonała. Będziemy używać unixtime wszędzie. –
Również tutaj jest [specyfikacja JSON dla dozwolonych typów] (http://rfc7159.net/rfc7159), jeśli ktokolwiek musi się do tego odwoływać. –