Q&A

  • 데이타베이스에서 연도,날짜문제...
델파이에서 간단한 데이타베이스 프로그램을 짜다가 막히는 부분이 있습니다.

파라독스를 사용했는데요 날짜를 저장하는 데이터형으로 DATE형을 지정하였습니다. 그런데 DB에서 날짜,연도 등을 꺼내어 연산(지정한 날짜별,연도별검색) 을 해야하는데 그 방법을 모르겠습니다.

DB에서 연도,날짜를 꺼내어 스트링형으로 변환하는 방법과 또 날짜를 나타내는 스트링을 DB속의 DATE 형에 맞게 저장하는 법을 알고싶습니다.

여러권의 책을 뒤져봐도 알수없더라구요.

답변해주신다면 정말 고맙겠습니다.

꼭 부탁드리겠습니다.

그럼...

1  COMMENTS
  • Profile
    이재식 1999.10.29 06:13
    김종하 wrote:

    > 델파이에서 간단한 데이타베이스 프로그램을 짜다가 막히는 부분이 있습니다.

    > 파라독스를 사용했는데요 날짜를 저장하는 데이터형으로 DATE형을 지정하였습니다. 그런데 DB에서 날짜,연도 등을 꺼내어 연산(지정한 날짜별,연도별검색) 을 해야하는데 그 방법을 모르겠습니다.

    > DB에서 연도,날짜를 꺼내어 스트링형으로 변환하는 방법과 또 날짜를 나타내는 스트링을 DB속의 DATE 형에 맞게 저장하는 법을 알고싶습니다.

    > 여러권의 책을 뒤져봐도 알수없더라구요.

    > 답변해주신다면 정말 고맙겠습니다.

    > 꼭 부탁드리겠습니다.

    > 그럼...



    이재식 Wrote ;

    안녕하십니까?

    매우 곤란한 작업입니다.

    예전에도 저 역시 그런 경험을 한 적이 있습니다.

    그렇기에 현재 제가 알고있는 한에서만 이야기를 하겠습니다.



    우선 날짜필드에서 특정 년도별, 특정 월별검색은

    결국 날짜필드에 있는 데이터값에서 원하는 개수를 짤라와야 하는데요,

    패러독스는 유감스럽게도 group by식에서 그런식을 제공하지 않습니다.

    즉, group by SubString(Cast(Nalja as char(10)) from 1 for 4)이

    되지 않는다는 것이죠.



    그리고, 패러독스에서는 group by와 함께 쓰일때

    select 절에서 Substring(Cast(Nalja as Char(10)) from 1 for 4)

    이런것도 잘 안되요.



    결국 저는 이렇게 해결했습니다.

    좀 무식하지만 날짜 타입은 무조건 문자열 타입으로 설계를

    바꾸었고, 그런데, 특정년도 월별로 검색을 하고 싶기때문에,

    날짜필드(문자열) 말고 여분으로 년, 월, 일필드를 만들었죠.



    참고로 가령 날짜필드데이터에 1999-01-01이라고 한다면,

    이것을 위처럼 cast연산을 써서 문자열로 바꾸면, 1999/1/1로 됩니다.

    가령, 1999-12-01이라면 1999/12/1이 되죠.



    보시는바와같이 문자열로 바꾼다면 문제가 생기죠? 그죠?



    그래서, 제가 감히 말씀드립니다만,

    날짜필드는 말 그대로 날짜일뿐 이것을 가지고 어떤 연산을 해서

    가령(group by처럼) 이용하려 한다면

    저는 다시 문자열로 전환하는 그런 방법을 추천하고 싶습니다.



    패러독스의 날짜필드에 값을 넣는경우는 여러가지가 있지만,

    결국 위처럼 저런 문제가 빈번히 발생하여 짜증이 나므로

    설명은 좀 그렇네요.



    그럼...