atOffset
возвращает значение OffsetDateTime , которое имеет другое значение Мин / Макс.
Минимальный поддерживаемый OffsetDateTime, '-999999999-01-01T00: 00: 00 + 18: 00'.
Максимально поддерживаемое значение OffsetDateTime, '+ 999999999-12-31T23: 59: 59.999999999-18: 00'.
blockquote>В javadoc упоминается, что эти минимальные / максимальные значения получены из LocalDateTime вместе с максимальными смещениями зоны, поэтому кажется, что они не совпадают до Instant
Причина, по которой у Мгновенного есть дополнительный год в обе стороны, согласно документации Мгновенное .
Это на год раньше минимального LocalDateTime. Это обеспечивает достаточные значения для обработки диапазона ZoneOffset, которые влияют на момент в дополнение к локальной дате и времени. Значение также выбирается таким образом, чтобы значение года помещалось в целое число.
blockquote>Охватывает крайний случай, когда LocalDateTime + Offset приводит к времени предыдущего года.
Максимальным практическим значением будет минимальное значение OffsetDateTime, преобразованное в мгновенное значение, поскольку все, что находится до этой даты, является буфером, для которого нет эквивалентного OffsetDateTime.
Ну, вы не сможете восстановить резервную копию 2008 года на сервере SQL 2005.
Самый простой способ сделать это - использовать мастер «Создать сценарии SQL Server» для создания сценария (включая схему и данные), который можно запустить в SQL 2005 для создания базы данных. См. http://www.devx.com/dbzone/Article/40531
Но вернемся к исходной проблеме: какие проблемы у вас возникают с SQL 2008?
Я согласен, в чем проблема? Вы не можете запустить базу данных в режиме совместимости с SQL 2005, если это связано с приложением. Если вам нужно перейти на 2005 год, вы не можете просто восстановить базу данных с 08 по 05.
Если у вас есть база данных размером более 50 МБ или около того, я бы написал сценарий вашей схемы базы данных с помощью мастера создания сценария, сценарий всех ваших ключей, индексов , триггеры, сопоставление и любые полнотекстовые индексы без данных. Просто не забудьте проверить сценарий на наличие варианта версии sql 2005. Запустите этот сценарий, чтобы создать новую базу данных на вашем сервере sql 2005.
Если в ваших таблицах есть триггеры, вы захотите отключить их все перед импортом данных. Эти сценарии сделают это за вас. Они сделают это за вас
-- Disable Triggers
While @i <= @MaxI
Begin
Select @dsql = 'DISABLE Trigger ' + TriggerName + ' ON ' + TableName
From @DisableTriggers
Where MyRowCount = @i
Exec sp_executesql @dsql
Select @i = @i + 1
End
-- Enable Triggers
While @i <= @MaxI
Begin
Select @dsql = 'Enable Trigger ' + TriggerName + ' ON ' + TableName
From @DisableTriggers
Where MyRowCount = @i
Exec sp_executesql @dsql
Select @i = @i + 1
End
Затем используйте мастер импорта / экспорта, чтобы импортировать данные в вашу базу данных; По моему опыту, это намного быстрее, чем сценарий вывода.
Другой способ сделать это - подключиться к обоим серверам через обозреватель объектов и импортировать данные с одного на другой.
Когда Однако при этом некоторые вещи не передаются правильно. Например, мне пришлось вручную сбросить настройки первичного и внешнего ключей, а также настройку автоинкремента. Однако это была небольшая цена за то, чтобы заставить все данные работать.