Firebird DATE to TIMESTAMP

0

Mam w bazie tabelę w której muszę zmienić typ danych z date na timestamp.
Niestety otrzymuję błąd konwersji.
Nie pomaga również dodanie rzutowania kolumny cast(termin_platnosci as timestamp)

TERMIN_PLATNOSCI DATE;
TMP TIMESTAMP;
ALTER TABLE S_RATA ADD TMP TIMESTAMP;
update S_RATA set tmp = termin_platnosci;
alter table S_RATA drop termin_platnosci;
ALTER TABLE S_RATA ALTER tmp TO termin_platnosci;

Ma ktoś pomysł jak dane z kolumny typu DATE wpisać do kolumny typu TIMESTAMP?

0

HMM... to dziwne.

co Ci daje

 Select cast(termin_platnosci as timestamp) from S_RATA 

?

0

Takie zapytanie zwraca poprawny wynik.
Generalnie temat obszedłem trochę na rympał, czyli grzebiąc w metadanych:

update RDB$FIELDS set
RDB$FIELD_TYPE = 35,
RDB$FIELD_LENGTH = 8,
RDB$CHARACTER_LENGTH = NULL
where RDB$FIELD_NAME =
  (select f.rdb$field_source
  from rdb$relation_fields f
  join rdb$relations r on f.rdb$relation_name = r.rdb$relation_name
  and r.rdb$view_blr is null 
  and (r.rdb$system_flag is null or r.rdb$system_flag = 0)
  and f.rdb$relation_name = 'S_RATA' and f.rdb$field_name = 'TERMIN_PLATNOSCI');  

1 użytkowników online, w tym zalogowanych: 0, gości: 1