시간 정보를 PostgreSQL 에 저장하는 방법은 여러가지 있습니다. 시간에 관한 자료형이 그만큼 PostgreSQL 에서는 복잡하게 되어 있기 때문입니다.
가장 많이 사용하는 형은 아마도 timestamp 형과 abstime 형이 아닐까 생각합니다. 하지만 개인적으로는 그냥 int 형을 많이 이용합니다. int 형에 어떻게 시간을 저장하냐고요. 그냥 unix time 함수에서 돌아온 값 (1970.1.1 시작부터 현재까지 흐른 시간을 초단위로 표시) 을 정수 그대로 저장해 둡니다. 이것을 나중에 postgresql 에서 필요할 경우 적당히 가공하여 사용하면 됩니다.
select now()::abstime::integer;
이렇게 하면 현재의 unix time() 함수 값을 확인할 수 있습니다.
그리고 만약 time 이라는 필드에 정수로 그 값이 저장되어 있다면 그 시간을 알아 보고자 한다면 다음과 같이 하면 됩니다.
select time::abstime from table_name where condition;
간단하게 처리가 가능하죠. :/) 아니면 datetime() 함수를 이용해도 됩니다. 위의 방법은 casting 연산자를 이용한 방법이지요. :/) 이렇게 하면 그냥 익숙한 정수형으로 시간의 처리가 어느 정도 가능해집니다.
|