Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal boa tarde.
É o seguinte, aqui na empresa possuimos o sistema microsiga protheus.
estou desenvolvendo alguns Relatorios em PHP porque o padrão do sistema não atende. E esta ficando muito bacana porem estou tendo alguns problemas.
Em especifico com as datas, o formato das datas do protheus dentro do banco é VARCHAR, algo que dificulta bastante, para piorar ela traz no padrão AAAAMMDD tudo junto e sem "-" ou "/".
Para mostrar as datas de emissão e de entrega eu estou precisando trazer no formato br dd/mm/aaaa.
Ja fiz diversas pesquisas e tambem ja utilizei alguns metodos que eu conheço como por exemplo.
CAST e CONVERT
O problema é que em todas elas o maximo que consegui fazer foi mudar para AAAA-MM-DD
usando por exemplo:
SELECT CAST(C7_EMISSAO AS DATE)FROM SC7010
Se alguem tiver alguma ideia de como fazer peço que por favor me ajude
>
Teste um destes modo:
SELECT CONVERT(VARCHAR(12),GETDATE(),101) AS '101', --mm/dd/aaaaCONVERT(VARCHAR(12),GETDATE(),102) AS '102', --aa.mm.ddCONVERT(VARCHAR(12),GETDATE(),103) AS '103', --dd/mm/aaaaCONVERT(VARCHAR(12),GETDATE(),104) AS '104', --dd.mm.aaCONVERT(VARCHAR(12),GETDATE(),105) AS '105', --dd-mm-aaCONVERT(VARCHAR(12),GETDATE(),106) AS '106', --dd mês aaCONVERT(VARCHAR(12),GETDATE(),107) AS '107', --Mês dd, aaCONVERT(VARCHAR(12),GETDATE(),108) AS '108', --hh:mi:ssCONVERT(VARCHAR(12),GETDATE(),109) AS '109', --mês dd aaaa hh:mi:ss:mmmAM (ou PM)CONVERT(VARCHAR(12),GETDATE(),110) AS '110', --mm-dd-aaCONVERT(VARCHAR(12),GETDATE(),111) AS '111', --aa/mm/ddCONVERT(VARCHAR(12),GETDATE(),112) AS '112', --aammddCONVERT(VARCHAR(12),GETDATE(),113) AS '113', --dd mês aaaa hh:mi:ss:mmm (24h)CONVERT(VARCHAR(12),GETDATE(),114) AS '114', --hh:mi:ss:mmm(24h)CONVERT(VARCHAR(12),GETDATE(),120) AS '120', --aaaa-mm-dd hh:mi:ss(24h)CONVERT(VARCHAR(12),GETDATE(),121) AS '121' --aaaa-mm-dd hh:mi:ss.mmm(24h) select CONVERT(VARCHAR(12),GETDATE(),103) AS '103' -- dd/mm/aaaa
A.Jr Obrigado por responder.
Nenhuma das formas funcionou. Na verdade eu já Havia testado. Acho que esse metodo funciona bem quando o campo já esta no formato date, como no meu caso esta em varchar, então não funcionou.
Tentou assim?
SELECT CONVERT(VARCHAR(12),CAST(C7_EMISSAO AS DATE),103) AS DATA FROM SC7010
mesmo em vachar, pode-se fazer o inverso:
select convert(datetime, '20130101', 103)
Teste um destes modo:
SELECT CONVERT(VARCHAR(12),GETDATE(),101) AS '101', --mm/dd/aaaaCONVERT(VARCHAR(12),GETDATE(),102) AS '102', --aa.mm.ddCONVERT(VARCHAR(12),GETDATE(),103) AS '103', --dd/mm/aaaaCONVERT(VARCHAR(12),GETDATE(),104) AS '104', --dd.mm.aaCONVERT(VARCHAR(12),GETDATE(),105) AS '105', --dd-mm-aaCONVERT(VARCHAR(12),GETDATE(),106) AS '106', --dd mês aaCONVERT(VARCHAR(12),GETDATE(),107) AS '107', --Mês dd, aaCONVERT(VARCHAR(12),GETDATE(),108) AS '108', --hh:mi:ssCONVERT(VARCHAR(12),GETDATE(),109) AS '109', --mês dd aaaa hh:mi:ss:mmmAM (ou PM)CONVERT(VARCHAR(12),GETDATE(),110) AS '110', --mm-dd-aaCONVERT(VARCHAR(12),GETDATE(),111) AS '111', --aa/mm/ddCONVERT(VARCHAR(12),GETDATE(),112) AS '112', --aammddCONVERT(VARCHAR(12),GETDATE(),113) AS '113', --dd mês aaaa hh:mi:ss:mmm (24h)CONVERT(VARCHAR(12),GETDATE(),114) AS '114', --hh:mi:ss:mmm(24h)CONVERT(VARCHAR(12),GETDATE(),120) AS '120', --aaaa-mm-dd hh:mi:ss(24h)CONVERT(VARCHAR(12),GETDATE(),121) AS '121' --aaaa-mm-dd hh:mi:ss.mmm(24h) select CONVERT(VARCHAR(12),GETDATE(),103) AS '103' -- dd/mm/aaaa