Boa tarde a todos!
Como gravo datas do formato 2000 em um arquivo dbf atraves da minha aplicação?
A quem ajudar agradeço
Obrigado
Dilson
Gravar datas no DBF com ano 2000?
Moderador: Moderadores
-
Dilson José
- Usuário Nível 1

- Mensagens: 24
- Registrado em: 06 Jun 2007 08:09
- Localização: www.pop.com.br
- Contato:
-
anacatacombs
- Membro Master

- Mensagens: 472
- Registrado em: 12 Jul 2005 16:53
- Localização: Cianorte-Paraná
- Contato:
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Gravar datas no DBF com ano 2000?
E utilize-se de SET CENTURY ON para trabalhar com 4 dígitos nas datas.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
-
anacatacombs
- Membro Master

- Mensagens: 472
- Registrado em: 12 Jul 2005 16:53
- Localização: Cianorte-Paraná
- Contato:
Gravar datas no DBF com ano 2000?
Ixe, entendi errado a pergunta do rapaz !
Acho que preciso de férias O.o
Obrigada Pablo
Acho que preciso de férias O.o
Obrigada Pablo
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Gravar datas no DBF com ano 2000?
Olá!
Relaxe Aninha, suspenda as férias. Você entendeu certo sim! E a dica do Pablo vem complementar.
Use SET CENTURY ON ou Set ( _SET_DATEFORMAT, "DD/MM/YYYY" ) para exibir o ano das datas com 4 dígitos.
Use ou SET DATE [TO] BRITISH ou Set ( _SET_DATEFORMAT, "DD/MM/YYYY" ) para formatar datas no padrão que usamos.
Use SET EPOCH TO <nVal> ou Set( _SET_EPOCH, <nVal> ) para definir um janelamento no tempo, quando estiver trabalhando com datas no formato DD/MM/AA.
Por exemplo:
SET EPOCH TO 1930 ou Set( _SET_EPOCH, 1930 ) ativaria a interpretação de datas com anos entre 00 e 29 como do século 21 (2000 a 2029) e anos entre 30 e 99 como século 20 (1930 a 1999). O janelamento do Windows era 1930 (não sei se mudou).
Se preferir utilizar a função Set() demostrada acima, não deixe de fazer um #include "set.ch"
Relaxe Aninha, suspenda as férias. Você entendeu certo sim! E a dica do Pablo vem complementar.
Use SET CENTURY ON ou Set ( _SET_DATEFORMAT, "DD/MM/YYYY" ) para exibir o ano das datas com 4 dígitos.
Use ou SET DATE [TO] BRITISH ou Set ( _SET_DATEFORMAT, "DD/MM/YYYY" ) para formatar datas no padrão que usamos.
Use SET EPOCH TO <nVal> ou Set( _SET_EPOCH, <nVal> ) para definir um janelamento no tempo, quando estiver trabalhando com datas no formato DD/MM/AA.
Por exemplo:
SET EPOCH TO 1930 ou Set( _SET_EPOCH, 1930 ) ativaria a interpretação de datas com anos entre 00 e 29 como do século 21 (2000 a 2029) e anos entre 30 e 99 como século 20 (1930 a 1999). O janelamento do Windows era 1930 (não sei se mudou).
Se preferir utilizar a função Set() demostrada acima, não deixe de fazer um #include "set.ch"
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Gravar datas no DBF com ano 2000?
Já que a pergunta do Dilson fala em gravação ("Como gravo datas do formato 2000"), vale uma observação: as datas, no DBF, são SEMPRE gravadas no formato AAAAMMDD. O que pode mudar é só a exibição. Se você usar por exemplo SET DATE BRITISH e SET CENTURY OFF, as datas são exibidas no formato DDMMAA, mas dentro do DBF elas continuam AAAAMMDD.
set date british
set century off
set epoch to 2000
data:=ctod("22/01/12")
replace campodata with data
* vai ser gravado 20120122 no DBF
set epoch to 1900
data:=ctod("22/01/12")
* vai ser gravado 19120122
Um cuidado a tomar: o default do Clipper é o formato americano de data, MMDDAA.
Se vc não usar o SET DATE BRITISH e fizer data:=ctod("22/01/12")
? data -> vai aparecer vazio, pq o clipper vai entender MM 22, DD 01 AA 12
Como não existe mês 22, a variável data vai conter uma data vazia.
set date british
set century off
set epoch to 2000
data:=ctod("22/01/12")
replace campodata with data
* vai ser gravado 20120122 no DBF
set epoch to 1900
data:=ctod("22/01/12")
* vai ser gravado 19120122
Um cuidado a tomar: o default do Clipper é o formato americano de data, MMDDAA.
Se vc não usar o SET DATE BRITISH e fizer data:=ctod("22/01/12")
? data -> vai aparecer vazio, pq o clipper vai entender MM 22, DD 01 AA 12
Como não existe mês 22, a variável data vai conter uma data vazia.