es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL Server no está aceptando YYYY-MM-DD.

Mi configuración local de SQL Server 2016 en el trabajo decidió no aceptar el formato de fecha YMD después de una reinstalación. Por ejemplo, la siguiente consulta, que fue y sigue siendo aceptada en las configuraciones de mis compañeros:

SELECT "id"  
FROM  test.dbo.tabEmp 
WHERE  "DateAdmission"  <= '2021-12-31' AND "DateAdmission">= '2021-12-30'  

Cuando intento ejecutarla, veo esto:

La conversión de un tipo de datos varchar a un tipo de datos datetime resultó en un valor fuera de rango.

Sin embargo, si reescribo las fechas como 2021-31-12 y 2021-12-30, en formato YYYY-DD-MM, son aceptadas.

Realmente no puedo convertir o formatearlo ya que las consultas de SQL en nuestro sistema son numerosas y se realizan de una manera que sería casi imposible hacerlo. ¿Hay algo que se pueda hacer? Intenté cambiar el formato de fecha de Windows, pero sin éxito.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema aquí está con la configuración de formato de fecha en tu instalación de SQL Server 2016. Mencionaste que las configuraciones de tus compañeros aceptan el formato de fecha YMD, pero la tuya no después de una reinstalación reciente. Una posible solución sería verificar la configuración de idioma de tu instancia de SQL Server y asegurarte de que esté configurada en un idioma que admita el formato de fecha YMD.

    Para verificar la configuración de idioma, puedes ejecutar la siguiente consulta:

    SELECT @@LANGUAGE;
    

    Esto debería devolver un código de idioma, como “us_english” o “British”. Si el código de idioma no admite el formato de fecha YMD, es posible que necesites cambiar la configuración de idioma. Puedes hacer esto utilizando el siguiente comando:

    EXEC sp_configure 'default language', '<new_language_code>';
    GO
    RECONFIGURE;
    GO
    

    Reemplaza <new_language_code> con el código de idioma que admita el formato de fecha YMD. Una vez que hayas realizado este cambio, intenta ejecutar tu consulta original nuevamente con el formato de fecha YMD y verifica si funciona.

    Si cambiar la configuración de idioma no es una opción, es posible que debas considerar actualizar tus consultas de SQL para utilizar el formato de fecha DD-MM-YYYY en su lugar. Si bien esto puede ser una tarea tediosa, puede ser necesario para asegurarte de que tus consultas se ejecuten correctamente en tu instalación específica de SQL Server.

Comments are closed.