Laravel 5.5 + MSSQL 2008. Ошибка с записью timestamps

136
07 декабря 2019, 03:40

добавляю данные в бд так:

$log = new Carriers_log;
  $log->create([
      'user_id' => $user->id,
      'log_title' => '1',
      'log_body' => $request->url()
  ]);

Модель:

class Carriers_log extends Model
{
    protected $table = 'carriers_log';//таблица модели   
    public $primaryKey = 'id_log';    
    public $timestamps = true;    
    protected $dateFormat = "Y-m-d H:i:s.000"; 
    protected $fillable = ['user_id', 'log_title', 'log_body'];
    public function User()
    {
        return $this->hasOne('App\User', 'id', 'user_id');
    }
}

Проблема в том, что при таком формате данных: Y-m-d H:i:s.000 показывает ошибку:

SQLSTATE[22007]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]
Преобразование типа данных nvarchar в тип данных 
datetime привело к выходу значения за пределы диапазона.

Но как только я меняю местами день и месяц в формате т.е. на Y-d-m H:i:s.000, то всё работает и в базе корректно отображается. Что может быть не так?

Answer 1

Посмотрите как формируется SQL в базу и ответ сразу будет очевиден. Также проверьте, что действительно в таблице используется TIMESTAMP,а не datetime например, где он не особо хочет видеть миллисекунды и формат соответственно 'php:Y-m-d H:i:s'.

READ ALSO
Что быстрее json_decode или explode?

Что быстрее json_decode или explode?

Что быстрее json_decode или explode? Информация хранится в виде 1,2,3 есть возможность изменить на [1,2,3] В дальнейшем требуется из этих данных получить...

116
Как убрать порт 433 из url?

Как убрать порт 433 из url?

Метод, формирующий тег canonical, возвращает:

174
NaN в ajax post

NaN в ajax post

Подскажите пожалуйста в консоли выводит слово "Принят" а в mysql записывает NaNВ чем может быть проблема?

121
где происходит подключение файла template_style.css в битрикс?

где происходит подключение файла template_style.css в битрикс?

в кастомном шаблоне битрикс, в его папке есть файл template_stylescss

95