postgresql教學 - postgresql tutorial



從PostgreSQL中的時間戳中提取日期(yyyy/mm/dd) (4)

我想從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

從PostgreSQL的時間戳中提取日期(yyyy / mm / dd)的最佳方式是什麼?


使用date功能:

select date(timestamp_field) from table

從字符字段表示到您可以使用的日期:

select date(substring('2011/05/26 09:00:00' from 1 for 10));

測試代碼:

create table test_table (timestamp_field timestamp);
insert into test_table (timestamp_field) values(current_timestamp);
select timestamp_field, date(timestamp_field) from test_table;

測試結果:


只要做select date(timestamp_column) ,你會得到唯一的日期部分。 有時候select timestamp_column::date可能會返回date 00:00:00 ,它不會刪除00:00:00部分。 但我已經看到date(timestamp_column)在所有情況下都能很好地工作。 希望這可以幫助。


您是否試圖將其轉換為日期,並使用<mydatetime>::date


這在Python 2.7中適用於我

 select some_date::DATE from some_table;




postgresql