Я хочу извлечь только часть даты из метки времени в PostgreSQL.
Мне нужно, чтобы это был тип postgresql DATE
, поэтому я могу вставить его в другую таблицу, которая ожидает значение DATE
.
Например, если у меня есть 2011/05/26 09:00:00
, я хочу 2011/05/26
Я пробовал кастинг, но я получаю только 2011:
timestamp:date
cast(timestamp as date)
Я пробовал to_char()
с to_date()
:
SELECT to_date(to_char(timestamp, 'YYYY/MM/DD'), 'YYYY/MM/DD')
FROM val3 WHERE id=1;
Я попытался сделать его функцией:
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
Каков наилучший способ извлечения даты (yyyy/mm/dd) из метки времени в PostgreSQL?