2013-11-15 3 views
2

에티오피아 날짜 형식을 사용하여 PostgreSQL 데이터베이스에 날짜를 저장하는 방법이 있습니까? 나는 2 월 29 일 또는 30 일을 저장하려고 노력하고 있지만, 율리우스 력에는 그러한 것이 없다고해서 오류가 발생합니다. 어떤 입력?Postgresql 에티오피아 날짜 형식

+2

PostgreSQL에 대한 답을 모르기 때문에 (답변이 아닌 주석입니다.)하지만 대부분의 DBMS는 DATE 및 TIME 및 TIMESTAMP 데이터를 사용중인 특정 캘린더와 독립적 인 표준 형식으로 저장합니다. 값은 로켈에 대한 규칙 (기본적으로 현재 로켈)의 지침에 따라 문자열에서 표준 또는 표준에서 문자열로 변환됩니다. 귀하의 질문은 (1) PostgreSQL이 에티오피아 날짜를 지원하는지, (2) 로케일 설정이 필요한지, (3) 각 필드를 제어 할 수 있는지 (Ethiopian과 Julian을 동시에 표시 할 수 있는지)). –

+0

@JonathanLeffler : Postgres에 대해이를 확인할 수 있습니다. 현대의 내부 형식 Postgres는 1970 년 이래로 [마이크로 초 (microseconds)를 계산하는 8 바이트 정수] (http://www.postgresql.org/docs/current/interactive/datatype-datetime.html)입니다. 이것은 100 % 로케일, 표준 시간대 또는 서식에 관계없이 2 월 30 일을 포함하는 문자열 리터럴을 허용하는 에티오피아 로캘이 필요합니다 (하나인지는 모르겠습니다). 그런 다음 내부 값은 클라이언트가 요청한 형식으로 변환됩니다. –

답변

1

나는

데이터베이스는 프로그램에 의해 사용되거나 인터페이스에서, 내가 psql의와 콘솔에서 최종 사용자에 의해 사용되는 데이터베이스를 본 적이 ... 새로운 뭔가를 얘기하지만 거라고 확실하지 않다.

응용 프로그램을 개발할 때 특정 달력에 날짜가 표시되어야하는 경우 PostgreSQL에 날짜를 TIMESTAMP으로 저장할 수 있습니다. 날짜가있는 모든 작업은 데이터베이스에서 올바르게 작동합니다. 그러나 응용 프로그램에서 TIMESTAMP에서 문자열 표현으로 또는 그 반대로 변환을 수동으로 구현해야합니다. 이것이 당신의 신청에있어 가장 중요한 것이라면, 당신은 이것을 할 것입니다.

당신이 변환으로 작성한 날짜를 반환해야하는 모든 검색어는 DOUBLE PRECISION입니다.

SELECT EXTRACT(EPOCH FROM timestamp_field) 

이 값은 타임 스탬프를 숫자 형식으로 나타내는 DOUBLE PRECISION 값을 반환합니다.

당신이 내장 함수 to_timestamp를 사용 TIMESTAMP에 숫자 프리젠 테이션으로 변환이 쿼리의 모든 날짜 매개 변수 :

update table_name set 
    timestamp_fileld = to_timestamp(1384852375.46666) 

다른 솔루션은 쿼리에서 직접이 작업을 수행 psql의 기능을 작성하는 것입니다 만, 어쨌든 쿼리의 날짜 필드의 각 입력/출력을 처리해야합니다.