В моем PHP-сценарии я хочу добавить дату в столбец (типа datetime) в MS SQL Server. Я установил соединение после этого поста в блоге (php5-sybase, php5-odbc, freetds в Ubuntu 14.04/15.10):https://blog.thesysadmins.co.uk/ubuntu-server-connect-to-mssql-via- php.html
Моя проблема заключается в том, что при использовании точно такого же запроса в сценарии php, что и в SQL Management Studio, запрос через PHP не выполняется, поскольку столбец даты интерпретируется как NULL. (Сокращенный) запрос:
INSERT INTO tbl_test (mydate) VALUES (’20-3-2004′)
message: Cannot insert the value NULL into column ‘mydate’ column does not allow nulls. INSERT fails.
Как я уже сказал, точно такой же запрос прекрасно работает в SQL Management Studio. Теперь этот запрос выполняется без ошибок:
INSERT INTO tbl_test (mydate) VALUES (’3-20-2004′)
Очевидно, что datetime в Query интерпретируется как MDY, но я не могу найти никакой возможности изменить это. Удивительно, но он работает под Ubuntu 15.10, но не 14.04, используя тот же конфиг для apache, php. freetds и php5-odbc используют свои значения по умолчанию.
Ни настройки SQL Server (@@ LANGUAGE = Germand, sp_helplanguage German dateformat = dmy), ни php.ini (форматы даты и времени iconv) не настроены в MDY . mssql.datetimeconvert = On не имеет значения для выключения.
tl; dr Как мне сказать PHP, что формат даты и времени не MDY, а DMY?