Эти выходные будут очень длинными, так как 30 июня после 23:59:59
будет добавлена дополнительная секунда .
У нас есть система, которая круглосуточно регистрирует множество данных, и одно из бизнес-правил заключается в том, что никакие две записи не могут быть зарегистрированы как произошедшие одновременно с точностью до одной секунды.
Мы используем дату и время в формате UTC вместе с новымdatetimeoffset
тип данных, но, насколько я могу судить, они не позволят вам иметь более 60 секунд в минуту.
Конечно, это выдает ошибку:
select datediff(ss, getdate(), '30-jun-2012 23:59:60')
Но, по словам богов UTC, это будет реальное время. События могут происходить в 23:59:60
, но у нас нет возможности зафиксировать этот факт.
23:59:59
смещение плюс одна секунда по-прежнему будет считаться 00:00:00
1 июля.
Как я могу правильно зарегистрировать, что событие произошло в 23:59:60
в базе данных?