Hallo an alle,
ich hoffe ihr könnt mir helfen.
Ich habe eine datenbank mit einem feld date_modified als bigint.
Damit ich dieses Feld auch von aussen ansprechen kann, brauche ich es aber als datetime oder timestamp, damit erspare ich mir teilweise extrem mühsame konvertierungen in php (Das wird bei uns verwendet).
Dazu möchte 2 trigger schreiben (insert und update) die nach insert oder update dieses feld auslesen und ein ein feld date_new als datetime oder timestamp einfügen.
Bisher bin ich soweit gekommen:
Ich bekomme allerdings immer den Fehler
Meldung 8115, Ebene 16, Status 2, Zeile 68
Arithmetic overflow error converting expression to data type datetime.
Nun bin ich mit meinem (kleinen) Latein ersteinmal am Ende.
Was habe ich übersehen, bzw. bin ich vielleich überhaupt völlig am Holzweg?
Danke
Enigmus
ich hoffe ihr könnt mir helfen.
Ich habe eine datenbank mit einem feld date_modified als bigint.
Damit ich dieses Feld auch von aussen ansprechen kann, brauche ich es aber als datetime oder timestamp, damit erspare ich mir teilweise extrem mühsame konvertierungen in php (Das wird bei uns verwendet).
Dazu möchte 2 trigger schreiben (insert und update) die nach insert oder update dieses feld auslesen und ein ein feld date_new als datetime oder timestamp einfügen.
Bisher bin ich soweit gekommen:
Code:
ALTER trigger [dbo].[tDatumIns] on [dbo].[DOCUMENTS] after insert as begin set nocount on; if (columns_updated()>0) declare @dat bigint; select @dat = (select ins.date_modified from inserted ins); declare @x bigint; select @x=datediff(s,'19700101',dateadd(d,0,GETDATE())); select @x=@x*1000; declare @nDat datetime; select @nDat=cast(@x as datetime) update documents set datum_mod=@x where date_modified=@dat end
Meldung 8115, Ebene 16, Status 2, Zeile 68
Arithmetic overflow error converting expression to data type datetime.
Nun bin ich mit meinem (kleinen) Latein ersteinmal am Ende.
Was habe ich übersehen, bzw. bin ich vielleich überhaupt völlig am Holzweg?
Danke
Enigmus
Comment