PHP5 + MSSQL2005 проблема с датами

dybenko

Новичок
PHP5 + MSSQL2005 проблема с датами

При переносе системы с php4 на php5 перестали выполнятся скрипты на Mssql 2005, но на Mssql 2000 продолжали работать.

Проблема оказалась в датах. А точнее в непонимании следующего формата '2007-06-27'.

Ниже приведенный скрипт, работает отлично с Mssql 2000 и выдает следуюущее 'Jun 27 2007 12:00AM'. Тоже самое выдает и на php4, при коннекте к Mssql 2000 и к Mssql 2005

PHP:
$con = mssql_connect($SETUP['db_server'][0].", 1433", $SETUP['db_user'][0], $SETUP['db_pwd'][0]);
mssql_select_db($SETUP['db_name'][0], $con);

$result = mssql_query("SELECT CONVERT(datetime, '2007-06-27') as mdate", $con);	


echo "</br>".mssql_num_rows($result);
while($row = mssql_fetch_array($result)){
	echo "</br>".$row['pm_name']."=>".$row['mdate'];
}

Если откоментировать строку ;mssql.datetimeconvert = On в php.ini, то Apach вообще падает при выполнении данного скрипта, даже если значении Off
 

dybenko

Новичок
'20070627'?
Не такое не подходит.
Подходит '27.06.2007', но меня такое не устраивает. Потому что ранише работало '2007-06-27'
 

RushHourRider

Новичок
1. mssql.datetimeconvert = Off ; это должно быть ВСЕГДА, иначе от сервера к серверу будет меняться формат в зависимости от локали и настроек базы. Падает апач - копай апач и php.
2. При указании даты в запросе используй универсальную нотацию для MSSQL: YYYYMMDD hh:mm:ss
3. Непонимание формата - это кривая прога. Есть strftime в конце концов.

MSSQL2000 & 2005, судя по всему, находятся на разных серверах (либо забыли про collation при переносе баз).
 
Сверху