Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Fechas en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=34071)

Puche 26-07-2006 10:05:23

Fechas en Firebird
 
Hola a todos. Trabajo con delphi7, bde e firebird. Cuando asigno una fecha a un campo de la base de datos, me devuelve este error. Es algo muy raro, ya que, en algunos casos, he detectado que si la asigno desde un edit (pj ttempes['fecha_creacion'] := edfecha99.text) funciona. En cambio cuando hago algo así ttempes['fecha_creacion']:=date, me salta el error:

0.0 is not a valid timestamp



La estructura de la tabla es:
create table TEMPESC(
CONCEPTO varchar(10) not null,
ARTICULO varchar(20),
CLASE varchar(20),
CONSUMO double precision,
COSTE T_YESNO DEFAULT 'False',
TOTAL double precision,
ORIGEN varchar(20),
CLASE_ORIGEN varchar(20),
IMPRESION smallint,
PRECIO double precision,
FECHA_CREACION timestamp,
INCLUIR T_YESNO DEFAULT 'False',
TIPO varchar(10),
PORCENTAJE T_YESNO DEFAULT 'False',
MARGEN T_YESNO DEFAULT 'False',
CANTIDAD double precision DEFAULT 0,
FECHA_CONSUMO timestamp,
PORCENTAJE2 char(1),
MARGEN2 char(1),
SECCION varchar(10));

/* Primary Key */
alter table TEMPESC add constraint TEMPESC_PRIMARY primary key (CONCEPTO);

/* Indexes */
create index IMPRI on TEMPESC(IMPRESION);
create index ESCANDALLO on TEMPESC(TIPO, PORCENTAJE2, MARGEN2, CONCEPTO);

Gracias por vuestro tiempo. Un saludo

vtdeleon 26-07-2006 16:18:08

Saludos

Por qué crear un Campo de tipo "timestamp" si en realidad vas a guardar Fechas?

Deberias cambiar el tipo de campo a DateTime

AGAG4 26-07-2006 16:20:20

Checa Esto...
 
Cita:

Empezado por Puche
Hola a todos. Trabajo con delphi7, bde e firebird. Cuando asigno una fecha a un campo de la base de datos, me devuelve este error. Es algo muy raro, ya que, en algunos casos, he detectado que si la asigno desde un edit (pj ttempes['fecha_creacion'] := edfecha99.text) funciona. En cambio cuando hago algo así ttempes['fecha_creacion']:=date, me salta el error:

0.0 is not a valid timestamp



La estructura de la tabla es:
create table TEMPESC(
CONCEPTO varchar(10) not null,
ARTICULO varchar(20),
CLASE varchar(20),
CONSUMO double precision,
COSTE T_YESNO DEFAULT 'False',
TOTAL double precision,
ORIGEN varchar(20),
CLASE_ORIGEN varchar(20),
IMPRESION smallint,
PRECIO double precision,
FECHA_CREACION timestamp,
INCLUIR T_YESNO DEFAULT 'False',
TIPO varchar(10),
PORCENTAJE T_YESNO DEFAULT 'False',
MARGEN T_YESNO DEFAULT 'False',
CANTIDAD double precision DEFAULT 0,
FECHA_CONSUMO timestamp,
PORCENTAJE2 char(1),
MARGEN2 char(1),
SECCION varchar(10));

/* Primary Key */
alter table TEMPESC add constraint TEMPESC_PRIMARY primary key (CONCEPTO);

/* Indexes */
create index IMPRI on TEMPESC(IMPRESION);
create index ESCANDALLO on TEMPESC(TIPO, PORCENTAJE2, MARGEN2, CONCEPTO);

Gracias por vuestro tiempo. Un saludo

Prueba con esto
Código Delphi [-]
['fecha_creacion']:=Now;

Delfino 27-07-2006 10:09:52

Cita:

En cambio cuando hago algo así ttempes['fecha_creacion']:=date, me salta el error:
Ten en cuenta q las fechas en Firebird tienen el formato mm/dd/yy, prueba haciendo la conversion con alguna funcion de Delphi..


La franja horaria es GMT +2. Ahora son las 22:12:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi