En fin como te decía, he modificado tu trigger, pero no lo he podido probar por lo que te decía. Así que si puedes échale un vistazo y da tu visto bueno
Este es el código:
CREATE TRIGGER [INSERT_TIMER_RECORD] AFTER INSERT ON [timer_record_table]
BEGIN
UPDATE timer_record_table SET
timestamp_Start=timestamp_Start - 600,
timestamp_Offset=timestamp_Offset + 1800,
date_year=strftime('%Y',(datetime(timestamp_start - 600, 'unixepoch', '+1 hours'))),
date_month=strftime('%m',(datetime(timestamp_start - 600, 'unixepoch', '+1 hours'))),
date_day=strftime('%d',(datetime(timestamp_start - 600, 'unixepoch', '+1 hours'))),
start_hour=strftime('%H',(datetime(timestamp_start - 600, 'unixepoch', '+1 hours'))),
start_minute=strftime('%S',(datetime(timestamp_sta rt - 600, 'unixepoch', '+1 hours'))),
length_hour=strftime('%H',datetime((strftime('%s', '2000-01-01 00:00:00') + timestamp_Offset + 1800), 'unixepoch')),
length_minute=strftime('%M',datetime((strftime('%s ','2000-01-01 00:00:00') + timestamp_Offset + 1800), 'unixepoch'))
WHERE ID = new.ID and event_id>0;
END;
Como ves, tomo como base los campos timestamp_start y timestamp_offset, y en función de estos construyo el resto de campos que me parecen a mi que son solo informativos. Y con esta solución da igual que lo hagas a las 00 horas del dia 1 de enero del 2011, porque actualiza todos los campos.
Ya me cuentas.