Ошибается ли Nesbot Carbon с замыкающими данными, а не со слишком малым объемом данных?

Я хочу подтвердить свою теорию, но сначала мне действительно нужно убедиться.

У меня есть laravel 5.0 и SQL Server 2012.

когда у меня есть поля с датой и временем по умолчанию, я не могу вставлять значения с пробелами более 3 микросекунд, потому что ошибка базы данных.

Поэтому, если я установлю его на datetime2(3), я смогу вставить гораздо больше микросекундных пробелов, но будут сохранены только первые, которые помещаются в поле.

Если я установлю для грамматики SQL Server значение 'Y-m-d H:i:s.u', он будет каждый раз пытаться вставить число с 6 пробелами.

Что я ищу, так это то, что у углерода не будет проблем с тем фактом, что база данных будет возвращать менее 6 чисел (а именно 3) и будет продолжать работать правильно во всех случаях без исключений, когда я вызываю toArray() в laravel или что-то типа того.

Я не могу выполнить datetime2(7), потому что углерод жалуется на замыкающие данные.

Короче говоря

Всегда ли углерод с установленным форматом даты Y-m-d H:i:s.u с радостью принимает число только с 3 десятичными знаками и с радостью вставляет в базу данных 6 десятичных знаков и не возражает против того, что база данных сохраняет только до 3 знаков?


person Tschallacka    schedule 04.11.2016    source источник
comment
Я хотел бы знать, что вы узнали - вы проверяли это? Можете ли вы предоставить обновление? Я только что перенес приложение Laravel в Azure SQL, в котором было много существующих данных, и прямо сейчас имею дело с ошибкой конечных данных. Как вы заставляете это работать?   -  person Nathan Loding    schedule 29.11.2016
comment
ах, точно. сделайте свои поля datetime2(3), а затем используйте формат .u для углерода. это многое решит. это решение, которое я выбрал, и поле datetime2 намного менее придирчиво, чем datetime.   -  person Tschallacka    schedule 29.11.2016
comment
Спасибо, это работает!   -  person Nathan Loding    schedule 30.11.2016


Ответы (1)


Для людей, занимающихся этим вопросом:

Я использую поля данных datetime2(3) в базе данных, и я использую нотацию даты Y-m-d H:i:s.u без проблем в течение последних 2 месяцев, даже со всеми шаткими датами, которые я иногда добавляю, у меня не было проблем.

Только проблемы, которые у меня были, когда я случайно использовал datetime или datetime2(7)

person Tschallacka    schedule 13.12.2016