Página 1 de 1

Gravar datas no DBF com ano 2000?

Enviado: 16 Jan 2012 12:41
por Dilson José
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?

Enviado: 16 Jan 2012 13:28
por anacatacombs
Tente assim:

Código: Selecionar todos

SET EPOCH TO 2000

Gravar datas no DBF com ano 2000?

Enviado: 16 Jan 2012 17:46
por Pablo César
E utilize-se de SET CENTURY ON para trabalhar com 4 dígitos nas datas.

Gravar datas no DBF com ano 2000?

Enviado: 17 Jan 2012 15:30
por anacatacombs
Ixe, entendi errado a pergunta do rapaz !
Acho que preciso de férias O.o
Obrigada Pablo

Gravar datas no DBF com ano 2000?

Enviado: 17 Jan 2012 21:57
por alxsts
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"

Gravar datas no DBF com ano 2000?

Enviado: 22 Jan 2012 11:16
por Eolo
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.