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)를 추출하는 가장 좋은 방법은 무엇입니까?
타임스탬프를 다음과 같이 접미사로 붙여 날짜에 캐스트할 수 있습니다.::date
psql의 타임스탬프는 다음과 같습니다.
# 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;
테스트 결과:
데이트 신청해 봤어요?<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
'programing' 카테고리의 다른 글
Windows에서 도커 오류: 입력 장치가 TTY가 아닙니다.minty를 사용하는 경우 명령 앞에 'winpty'를 붙여 보십시오. (0) | 2023.04.29 |
---|---|
코드 행 이동 및 소멸, Eclipse XML Editor 문제 (0) | 2023.04.29 |
bash에 경로 및 확장자가 없는 파일 기본 이름 추출 (0) | 2023.04.29 |
xlwt로 여러 열로 셀을 작성하는 방법은 무엇입니까? (0) | 2023.04.29 |
iPhone 응용 프로그램을 종료하는 올바른 방법은 무엇입니까? (0) | 2023.04.29 |