Error en fechas en laravel 5.5 y SQLServer

publicado por: Anonymous

Al insertar cualquier fecha en laravel 5.5 hacia una base de datos SQLserver me da el siguiente error:

SQLSTATE[22003]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]
Error de desbordamiento aritmético al convertir expression al tipo de datos datetime.

Al parecer se debe a que laravel envía la fecha con formato ‘Y-m-d H:i:s.000’ (2017-10-24 13:22:35.000)

Hasta ahi todo bien el problema es que antes de ejecutar esa consulta laravel envia las siguientes instrucciones a la base de datos:

-- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language Español
**set dateformat dmy**
set datefirst 1
set transaction isolation level read committed

set dateformat dmy significa que debería recibir ‘d-m-Y H:i:s.000’ pero no se cómo cambiar la configuración para que las instrucciones y las querys sean consistentes.

¿Cómo puedo corregir este error?

solución

Finalmente solucione el tema mediante poner el formato de fecha no convencional en cada modelo…

protected $dateFormat = 'd-m-Y H:i:s';

ahora el tema de los pasword_reset lo arregle modificando en el codigo local de laravel lo siguiente:

vendorlaravelframeworksrcIlluminateAuthPasswordsDatabaseTokenRepository.php
protected function getPayload($email, $token)
    {
        return [
            'email' => $email, 'token' => $this->hasher->make($token),
            'created_at' => Carbon::now()->format('d-m-Y H:i:s')
        ];
    }

Aunque la respuesta mas correcta que se podria llevar a cabo es la de taylor:
https://github.com/laravel/framework/issues/653#issuecomment-15459517

No se si alguien me podria guiar con este proceso para poder llevarlo a cabo…
Formulé esta pregunta en la siguiente pagina:
Modificar conexion a SQL Server desde Laravel 5.5 para manipular fechas

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *