programing

Postgre의 타임스탬프에서 날짜(yyyy/mm/dd) 추출SQL

oldcodes 2023. 4. 29. 09:52
반응형

Postgre의 타임스탬프에서 날짜(yyyy/mm/dd) 추출SQL

Postgre의 타임스탬프에서 날짜 부분만 추출하고 싶습니다.SQL.

저는 그것이 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)를 추출하는 가장 좋은 방법은 무엇입니까?

타임스탬프를 다음과 같이 접미사로 붙여 날짜에 캐스트할 수 있습니다.::datepsql의 타임스탬프는 다음과 같습니다.

# select '2010-01-01 12:00:00'::timestamp;
      timestamp      
---------------------
 2010-01-01 12:00:00

이제 날짜를 정하겠습니다.

wconrad=# select '2010-01-01 12:00:00'::timestamp::date;
    date    
------------
 2010-01-01

반면에 당신은 사용할 수 있습니다.date_trunc기능.이들 사이의 차이점은 후자가 다음과 같은 동일한 데이터 유형을 반환한다는 것입니다.timestamptz시간대를 그대로 유지합니다(필요한 경우).

=> select date_trunc('day', now());
       date_trunc
------------------------
 2015-12-15 00:00:00+02
(1 row)

날짜 함수 사용:

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;

테스트 결과:

pgAdmin 결과

pgAdmin 결과 전체

데이트 신청해 봤어요?<mydatetime>::date?

포스트그레스에서는 간단히:

TO_CHAR(timestamp_column, 'DD/MM/YYYY') as submission_date

이것은 python 2.7에서 작동합니다.

 select some_date::DATE from some_table;

그냥 해요select date(timestamp_column)그리고 당신은 유일한 데이트 파트를 얻게 될 것입니다.가끔 하는 것select timestamp_column::date돌아올지도 모르는date 00:00:00그것이 제거하지 않는 곳.00:00:00하지만 난 본 적이 있어요date(timestamp_column)모든 경우에 완벽하게 작동합니다.이게 도움이 되길 바랍니다.

CREATE TABLE sometable (t TIMESTAMP, d DATE);
INSERT INTO sometable SELECT '2011/05/26 09:00:00';
UPDATE sometable SET d = t; -- OK
-- UPDATE sometable SET d = t::date; OK
-- UPDATE sometable SET d = CAST (t AS date); OK
-- UPDATE sometable SET d = date(t); OK
SELECT * FROM sometable ;
          t          |     d      
---------------------+------------
 2011-05-26 09:00:00 | 2011-05-26
(1 row)

다른 테스트 키트:

SELECT pg_catalog.date(t) FROM sometable;
    date    
------------
 2011-05-26
(1 row)

SHOW datestyle ;
 DateStyle 
-----------
 ISO, MDY
(1 row)

사용할 수 있습니다.date_trunc('day', field).

select date_trunc('day', data_gps) as date_description from some_table;

언급URL : https://stackoverflow.com/questions/6133107/extract-date-yyyy-mm-dd-from-a-timestamp-in-postgresql

반응형