Q&A

  • date를 "20000719"로 변환 좀 해주세요.


제가 워낙 초보라서요.



date를 DateToStr(Date)하면 "00-07-19"로는 되던데,

제가 원하는 것은 "20000719"형식입니다.



변환하는 full code좀 부탁드립니다.

(검색을 해봐도 없는 것 같네요.substring함수가 있던데 이것은 select문에서

만 쓸수 있나요?)

6  COMMENTS
  • Profile
    황광일 2000.07.20 21:01


    begin

    with query1 do

    begin

    close;

    sql.clear;

    sql.Add('Select * from aaaa where DATE=:DATE');

    params[0].AsString := formatdatetime('yyyymmdd', now);

    open;

    end;

    end;

    sql 문의 첫번째 DATE => 필드이름

    sql 문의 두번째 DATE => 파라미터 이름

    대부분 필드이름과 같이 써둠...

    ParamByName을 쓰지 않는 이상....별루 의미없으니깐...









    somoon wrote:

    >

    > 제가 워낙 초보라서요.

    >

    > date를 DateToStr(Date)하면 "00-07-19"로는 되던데,

    > 제가 원하는 것은 "20000719"형식입니다.

    >

    > 변환하는 full code좀 부탁드립니다.

    > (검색을 해봐도 없는 것 같네요.substring함수가 있던데 이것은 select문에서

    > 만 쓸수 있나요?)

  • Profile
    Mr.Q 2000.07.20 07:15
    somoon wrote:

    >

    > 제가 워낙 초보라서요.

    >

    > date를 DateToStr(Date)하면 "00-07-19"로는 되던데,

    > 제가 원하는 것은 "20000719"형식입니다.

    >

    > 변환하는 full code좀 부탁드립니다.

    > (검색을 해봐도 없는 것 같네요.substring함수가 있던데 이것은 select문에서

    > 만 쓸수 있나요?)



    ShortDateFormat:='yyyymmdd';

    DateToStr(Date);

    이렇게 하면 됩니다. 아니면, FormatDate('yyyymmdd', date)하면 됩니다.

  • Profile
    이경원 2000.07.20 07:27
    아래에처럼 format문을 사용해도 되지만, datetostr(date); gotj 200000719로 나오게

    할려면

    제어판의 시스템 날짜에 보면,

    yyyymmdd로 할건지, yymmdd로 할건지 그 외 여러가지 선택할수가 있습니다.

    (nt, windows 의 시스템 날짜를 가져올 경우);

    아마 default로는 yymmdd로 되어 있는 것으로 압니다.



    성공하시길....



    Mr.Q wrote:

    > somoon wrote:

    > >

    > > 제가 워낙 초보라서요.

    > >

    > > date를 DateToStr(Date)하면 "00-07-19"로는 되던데,

    > > 제가 원하는 것은 "20000719"형식입니다.

    > >

    > > 변환하는 full code좀 부탁드립니다.

    > > (검색을 해봐도 없는 것 같네요.substring함수가 있던데 이것은 select문에서

    > > 만 쓸수 있나요?)

    >

    > ShortDateFormat:='yyyymmdd';

    > DateToStr(Date);

    > 이렇게 하면 됩니다. 아니면, FormatDate('yyyymmdd', date)하면 됩니다.

  • Profile
    somoon 2000.07.20 18:04
    감사합니다.



    ShortDateFormat:='yyyymmdd';

    DateToStr(Date);



    위와 같이 하여 '20000719'는 해결이 되었습니다.

    그런데,



    Query문에

    query1.SQL.add('SELECT * FROM "afile" where a_date_field=''20000719''');

    은 이상없이 실행되었는데

    query1.SQL.add('SELECT * FROM "afile" where a_date_field=DateToStr(Date)');

    은 'invalid field name error'가 납니다.



    왜 그런가요.

    유치한 질문이겠지만 저는 왕초보입니다. 이해해주시기 바랍니다.







  • Profile
    Mr.Q 2000.07.21 12:08
    somoon wrote:

    > 감사합니다.

    >

    > ShortDateFormat:='yyyymmdd';

    > DateToStr(Date);

    >

    > 위와 같이 하여 '20000719'는 해결이 되었습니다.

    > 그런데,

    >

    > Query문에

    > query1.SQL.add('SELECT * FROM "afile" where a_date_field=''20000719''');

    > 은 이상없이 실행되었는데

    > query1.SQL.add('SELECT * FROM "afile" where a_date_field=DateToStr(Date)');







    우선, 가정 중요한 문제는. TQuery의 필드에디터에 필드를 정의?해 주지 않아서

    생기는 오류메세지입니다. 퀘리 팝업메뉴(오른쪽파우스)..해서, 에디터 텨 나오면

    add .. fields해주시길 바랍니다. 님의 코딩에 축복을 기원합니다.







    패러미터 인식은 '='아니라, ':='입니다. ':'게 들어가야 할거예요.

    where a_date_field=DateToStr(Date)'); 이부분을

    그렇게 하지마시구요, datetostr(date)를 패러미터로 대체하세요.

    대체할때는 parmabyname('').asdate:=var_date 뭐, 이런식으로 될겁니다.

    var_date:=datetostr(date); 가 되어야겠죠.







    > 은 'invalid field name error'가 납니다.

    >

    > 왜 그런가요.

    > 유치한 질문이겠지만 저는 왕초보입니다. 이해해주시기 바랍니다.

    >

    >

    >





  • Profile
    박세연 2000.09.06 23:29
    somoon wrote:

    > query1.SQL.add('SELECT * FROM "afile" where a_date_field=DateToStr(Date)');

    > 은 'invalid field name error'가 납니다.

    >

    저또한 만만찬은 왕초보로 맨날 질문만 올리다 첨으로 답변을 올리네요 쿠할할~~



    음~~ 위 쿼리는 쿼리내부에 DateToStr()함수를 써서 그렇슴다 그 함수는 델파이 함수



    걸랑요.. 그러니까 DBMS로 가면 에러가 나게 되죠...



    담과 같이 해보세요...



    ('SELECT * FROM "afile" where a_date_field=''' + DateToStr(Date)+ '''');



    담과 같이 하면 함수부분은 델에서 실행하고 결과값을 쿼리문안에 더하게되죠...



    아님 파라미터를 사용하시던지 하면 될겁니다.파라미터는 도움말을 보면 상세히 나오죠



    위거는 야메로 알게 되거에요.. 히히~~