Я понимаю, что в соответствии с Interbase v6 Firebird 2.5 не поддерживает ключевое слово SQL-92 INTERVAL
. По крайней мере, так предлагает this reference и мои повторяющиеся ошибки SQLCODE -104, пытающиеся получить INTERVAL
s для работы в Firebird's isql (1).Firebird 2.1 TIMESTAMP арифметические и гражданские интервалы
Как же я объясняю несоответствия в нашем гражданском расчете времени - месяцы неравномерны, а также дни с экономией времени и корректировки прыжка, не говоря уже о годе путаницы и т. Д. - при выполнении TIMESTAMP
арифметики под Firebird 2.1?
Как я могу легко определить «на месяц раньше» или «на одну неделю позже», чем заданный TIMESTAMP
? Как насчет «на следующий день» или «за два часа до»?
"Классический" ариф. не позволяет работать с гражданскими интервалами в качестве операнда, но DATEADD и DATEDIFF кажутся на месте. (Однако я не могу убедить какой-либо из методов распознать изменение сэкономленного времени, которое произошло в моем часовом поясе в 2009-03-08 - слишком плохо.) – pilcrow
@pilcrow: вы не можете распознать изменения DST, поскольку это предполагает, что дата/время будет локальным. Функции as-is, похоже, работают с системным временем, что хорошо, поскольку база данных всегда должна хранить отметки времени в UTC. – mghie
@mghie, моя система и мой сервер Firebird находятся по местному времени. – pilcrow