Chcę wyodrębnić tylko część daty ze znacznika czasu w PostgreSQL.
Potrzebuję tego DATE
typu postgresql, aby móc wstawić go do innej tabeli, która oczekuje DATE
wartości.
Na przykład, jeśli mam 2011/05/26 09:00:00
, chcę2011/05/26
Próbowałem castować, ale dostaję tylko 2011:
timestamp:date
cast(timestamp as date)
Próbowałem to_char()
z to_date()
:
SELECT to_date(to_char(timestamp, 'YYYY/MM/DD'), 'YYYY/MM/DD')
FROM val3 WHERE id=1;
Próbowałem uczynić to funkcją:
CREATE OR REPLACE FUNCTION testing() RETURNS void AS '
DECLARE i_date DATE;
BEGIN
SELECT to_date(to_char(val1, "YYYY/MM/DD"),"YYYY/MM/DD")
INTO i_date FROM exampTable WHERE id=1;
INSERT INTO foo(testd) VALUES (i);
END
Jaki jest najlepszy sposób na wyodrębnienie daty (rrrr / mm / dd) ze znacznika czasu w PostgreSQL?
źródło
Użyj funkcji daty :
Od reprezentacji pola znaków do daty, której możesz użyć:
Kod testowy:
Wynik testu:
źródło
Próbowałeś umówić się na randkę
<mydatetime>::date
?źródło
Działa to dla mnie w Pythonie 2.7
źródło
Kolejny zestaw testowy:
źródło
Po prostu zrób,
select date(timestamp_column)
a dostaniesz jedyną część daty. Czasami robienieselect timestamp_column::date
może powrócićdate 00:00:00
tam, gdzie nie usuwa00:00:00
części. Ale widziałem,date(timestamp_column)
że działa idealnie we wszystkich przypadkach. Mam nadzieję że to pomoże.źródło
W postgresie po prostu: TO_CHAR (kolumna_czasu, „DD / MM / RRRR”) jako data_desłania
źródło