Conversão de dados

Galera, eu tenho um fone de relatório e queria saber como faço pra converter a data de AAAAMMDD para DDMMAAAA. Já tentei de várias formas, usando STOD/DTOS, usando máscaras (@D, @E) porém elas não convertem e as vezes até mesmo nem mostram os dados. Alguém tem ideia do que posso fazer?

Segue abaixo as linhas relacionadas a data no relatório.

PARÂMETRO PARA SELECIONAR A DATA QUE DESEJA EXTRAIR O RELATÓRIO:


Local xPar0 := sToD("")
Local xPar1 := sToD("")

    //Adicionando os parametros do ParamBox
    aAdd(aPergs, {1, "Data de", xPar0,  "", ".T.", "", ".T.", 80,  .T.})
    aAdd(aPergs, {1, "Data até", xPar1,  "", ".T.", "", ".T.", 80,  .T.})

QUERY ONDE É PUXADA A DATA:


cQryAux += "AND A.LX_DTMOVTO >= '" + DTOS(MV_PAR01) + "' "        + CRLF
cQryAux += "AND A.LX_DTMOVTO <= '" + DTOS(MV_PAR02) + "' "        + CRLF

IMPRESSÃO DA DATA NO RELATÓRIO:


oPrintPvt:SayAlign(nLinAtu, nColDad4, Alltrim(DTOS(QRY_AUX->LX_DTMOVTO)), oFontDet, 50, 10, /*nClrText*/, PAD_CENTER, /*nAlignVert*/)

Desde já agradeço!!

Tente da seguinte maneira:


cData := '20230215' // sua data original
cData := sToD(cData) // converta para date, irá resultar em 15/02/2023, porém do tipo Date
cData := dToC(cData) // converta para caractere, irá resultar em '15/02/2023'
cData := StrTran(cData, '/', '') // remova as barras da data, resultando em '15022023'

Resultado final:


oPrintPvt:SayAlign(nLinAtu, nColDad4, StrTran(dToC(QRY_AUX->LX_DTMOVTO), '/', ''), oFontDet, 50, 10, /*nClrText*/, PAD_CENTER, /*nAlignVert*/)

Tentei assim mas deu erro: THREAD ERROR ([6308], pdv, MUT99VK) 15/02/2023 13:59:58
argument #0 error, expected C->D, function substr on STOD(APLIB200.PRW) 30/12/2022 14:25:04 line : 110

Verifiquei aqui e provavelmente o seu campo QRY_AUX->LX_DTMOVTO já está como Date, sendo assim basta realizar um dToC e depois o StrTran. Atualizei a solução.