Q&A

  • 어떤 월에 대한 마지막 날(일)을 구하는 함수???
안녕하세요. 델피안 님들!!!

각 월에 대한 마지막 날을 얻을 수 있는 델파이 함수나 방법이 없을까요?



전 지금 SQL서버7.0과 연동해서 작업중인데요....

혹 SQL7.0함수 중에서 구하는 방법도 있다면 알려주세요....



그리구요... SQL서버에서는 오라클에서 숫자열 포맷함수(to_char)와 같이 3자리마다

콤마(,)가 찍혀서 출력되게 할 수는 없는 건가요?

꼭 좀 부탁드립니다.

감사합니다.

2  COMMENTS
  • Profile
    안재현 1999.12.02 07:43
    호 wrote:

    > 안녕하세요. 델피안 님들!!!

    > 각 월에 대한 마지막 날을 얻을 수 있는 델파이 함수나 방법이 없을까요?

    >

    > 전 지금 SQL서버7.0과 연동해서 작업중인데요....

    > 혹 SQL7.0함수 중에서 구하는 방법도 있다면 알려주세요....

    >

    > 그리구요... SQL서버에서는 오라클에서 숫자열 포맷함수(to_char)와 같이 3자리마다

    > 콤마(,)가 찍혀서 출력되게 할 수는 없는 건가요?

    > 꼭 좀 부탁드립니다.

    > 감사합니다.



    음.. 글쎄요. 제가 알기론 각 월에 대한 마지막 날을 자동으로 얻는 함수는 없는 것 같네요.



    간단한 편법으로는 다음달의 첫날.. (이건 항상 1일이니까 알수가 있겠죠) 에서 1을 빼면 이번 달의 마지막날을 알수가 있습니다.



    아니면 그해 1월 31에서 DateAdd 함수를 이용하여 구하는 방법도 있겠네요.

    예를 들면 DateAdd(month, 1, '1999-01-01') 이라고 하면 1999-02-28이 나오죠.



    그리고 SQL에서는 숫자를 스트링으로 바꿀 때 콤마를 찍어주는 건 없는 걸로 알고 있습니다. (제가 정확하게 잘 몰라서요.)



    한 가지 방법은 테이블 컴포넌트에서 필드들을 ADD 한 다음에 그 필드의 Displayformat을 #,### 정도로 설정하는 방법이 있습니다.



    도움이 되셨기를....

  • Profile
    좋은날 1999.12.08 05:29
    안재현 wrote:

    > 호 wrote:

    > > 안녕하세요. 델피안 님들!!!

    > > 각 월에 대한 마지막 날을 얻을 수 있는 델파이 함수나 방법이 없을까요?

    > >

    > > 전 지금 SQL서버7.0과 연동해서 작업중인데요....

    > > 혹 SQL7.0함수 중에서 구하는 방법도 있다면 알려주세요....

    > >

    > > 그리구요... SQL서버에서는 오라클에서 숫자열 포맷함수(to_char)와 같이 3자리마다

    > > 콤마(,)가 찍혀서 출력되게 할 수는 없는 건가요?

    > > 꼭 좀 부탁드립니다.

    > > 감사합니다.

    >

    > 음.. 글쎄요. 제가 알기론 각 월에 대한 마지막 날을 자동으로 얻는 함수는 없는 것 같네요.

    >

    > 간단한 편법으로는 다음달의 첫날.. (이건 항상 1일이니까 알수가 있겠죠) 에서 1을 빼면 이번 달의 마지막날을 알수가 있습니다.

    >

    > 아니면 그해 1월 31에서 DateAdd 함수를 이용하여 구하는 방법도 있겠네요.

    > 예를 들면 DateAdd(month, 1, '1999-01-01') 이라고 하면 1999-02-28이 나오죠.

    >

    > 그리고 SQL에서는 숫자를 스트링으로 바꿀 때 콤마를 찍어주는 건 없는 걸로 알고 있습니다. (제가 정확하게 잘 몰라서요.)

    >

    > 한 가지 방법은 테이블 컴포넌트에서 필드들을 ADD 한 다음에 그 필드의 Displayformat을 #,### 정도로 설정하는 방법이 있습니다.

    >

    > 도움이 되셨기를....



    제가 작성한 소스 한 번 올려봅니다.

    파라미터는 년4, 월2자리입니다. 결과는 datetime이구여..



    Function gf_GetLastDate(PutYyyy: string ;PutMM: string) : TDatetime;

    begin

    putMM := IntToStr(StrToInt(putMM)+1); //다음달의 스트링

    if putMM = '13' then //12월이면...

    begin

    putyyyy := IntToStr(StrToInt(putyyyy)+1); // 다음년도

    putmm := '01';

    end;



    result := strtodate(FormatDateTime('yyyy-MM-dd',

    StrToDate(putyyyy + '-' + putmm + '-01')-1));



    end;