[SQL] PostgreSQL의에서 타임 스탬프에서 추출 날짜 (년 / 월 / 일)
SQLPostgreSQL의에서 타임 스탬프에서 추출 날짜 (년 / 월 / 일)
나는 PostgreSQL을에 타임 스탬프에서 불과 날짜 부분을 추출 할.
나는 날짜 값을 예상하고 다른 테이블에 삽입 할 수 있도록이 PostgreSQL의 DATE 타입을해야합니다.
내가 2011년 5월 26일 9시 0분 0초이있는 경우 예를 들어, 나는 2011년 5월 26일을 원하는
나는 캐스팅했지만, 난 단지 2011 수 :
timestamp:date
cast(timestamp as date)
나는 TO_DATE와 TO_CHAR를 () () 시도 :
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의에서 타임 스탬프에서 추출 날짜 (년 / 월 / 일)에 가장 좋은 방법은 무엇입니까?
해결법
-
==============================
1.당신과 함께 :: 날짜를 부기 날짜에 타임 스탬프를 캐스팅 할 수 있습니다. 여기에, psql의에서, 타임 스탬프입니다 :
당신과 함께 :: 날짜를 부기 날짜에 타임 스탬프를 캐스팅 할 수 있습니다. 여기에, 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)
-
==============================
2.날짜 기능을 사용 :
날짜 기능을 사용 :
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;
검사 결과:
-
==============================
3.당신이
:: 날짜, 날짜로 캐스팅하려고 있나요? 당신이
:: 날짜, 날짜로 캐스팅하려고 있나요? -
==============================
4.이것은 파이썬 2.7에서 나를 위해 작동
이것은 파이썬 2.7에서 나를 위해 작동
select some_date::DATE from some_table;
-
==============================
5.
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)
-
==============================
6.그냥 선택 날짜 (timestamp_column를) 할 당신은 단지 날짜 부분을 얻을 것입니다. 때로는이 0시 0분 0초 부분을 제거하지 않는 경우 날짜 0시 0분 0초를 반환 할 수 있습니다 선택 timestamp_column :: 일을하고. 하지만 모든 경우에 완벽하게 일 이내 (timestamp_column)를 보았다. 도움이 되었기를 바랍니다.
그냥 선택 날짜 (timestamp_column를) 할 당신은 단지 날짜 부분을 얻을 것입니다. 때로는이 0시 0분 0초 부분을 제거하지 않는 경우 날짜 0시 0분 0초를 반환 할 수 있습니다 선택 timestamp_column :: 일을하고. 하지만 모든 경우에 완벽하게 일 이내 (timestamp_column)를 보았다. 도움이 되었기를 바랍니다.
-
==============================
7.단순히 포스트 그레스에서 : TO_CHAR (timestamp_column, 'DD / MM / YYYY') submission_date로
단순히 포스트 그레스에서 : TO_CHAR (timestamp_column, 'DD / MM / YYYY') submission_date로
from https://stackoverflow.com/questions/6133107/extract-date-yyyy-mm-dd-from-a-timestamp-in-postgresql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL은 / SQL : 만 날짜 시간 컬럼에 날짜별로 그룹 (0) | 2020.04.28 |
---|---|
[SQL] 오라클의 모든 테이블 제약을 해제 (0) | 2020.04.28 |
[SQL] "여기서 1 = 1"문 [중복] (0) | 2020.04.28 |
[SQL] 어떻게 SQL 쿼리에서 변수를 설정하는 방법? (0) | 2020.04.28 |
[SQL] SQL 데이터베이스에 위도와 경도 데이터를 저장할 때 어떤 데이터 유형을 사용 하는가? [복제] (0) | 2020.04.28 |