diff --git a/readme.md b/readme.md index 8a8db4a..c5677d8 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,14 @@ # MSSQL Dateformat Fixer -There is an international date format Y-m-d that is supposed to be universal, however the MSSQL implementation is flawed -and is not universal and incorrect interprets it as Y-d-m which is beyond idiotic. -Laravel uses Y-m-d as their international format, which can lead to errors depending on SQL SERVER Settings. -This command checks the vendor directory for the file and updates it if required. +There is an [international date format (ISO standard)](https://www.iso.org/iso-8601-date-and-time-format.html) (YYYY-MM-DD) `Y-m-d` that is supposed to be universal, however the MSSQL implementation is flawed +and is NOT universal and incorrectly interprets `Y-m-d` as `Y-d-m` which is beyond idiotic. +Laravel uses `Y-m-d` as their international format, which can lead to errors depending on SQL SERVER Settings. + +There is one format `Ymd` which is absolutely gauranteed to always be interpreted by SQLServer as `Ymd`. This command patches the file in +illuminate library to use `Ymd` instead of `Y-m-d`. I [Requested](https://github.com/laravel/framework/issues/49074) that the change be made in the illuminate library but it was felt the change +was too big to be made. + +I hope this is helpful to those of you out there using MSSQL with PHP/Laravel. ## Installation @@ -40,4 +45,11 @@ on install and update. This is due to the fact that whenever `composer update` or `composer install` is run and the illuminate package is updated it will overwrite the `SqlServerGrammar.php` with the origional version, so it is necessary to call the command whenever this has the potential of happening. If no change has been made to the file it will -not be modified. \ No newline at end of file +not be modified. + +#### Further reading on why this is necessary + +This is discussed in several places online + + - [sqlblog.org/2009/10/16/bad-habits-to-kick-mis-handling-date-range-queries](https://sqlblog.org/2009/10/16/bad-habits-to-kick-mis-handling-date-range-queries) + - [stackoverflow.com/questions/19565320/why-is-sql-server-misinterpreting-this-iso-8601-format-date](https://stackoverflow.com/questions/19565320/why-is-sql-server-misinterpreting-this-iso-8601-format-date)