Проблема, когда я пытаюсь получить DataTime с сервера sql

Я пытаюсь получить данные из sql, используя php. Но я получаю ошибку 500 при получении значений даты. Нет ошибок при получении данных другого типа.
Может ли кто-нибудь сказать мне, почему это происходит?

Значение в ячейке: "1999/12/31 16:01:05.000"

Windows-сервер

$tsql = "
    SELECT 
        ProgramName, 
        RepeatID, 
        Round(ScrapFraction*100,2) As Yeld, 
        MachineName, 
        Round(CuttingTime*60,2) AS CuttingTimeMins,
        PostDateTime,
        PostedByUserID, 
        Thickness, 
        Material, 
        PostDateTime 
    FROM 
        dbo.Program";

/* Execute the query. */

$stmt = sqlsrv_query( $conn, $tsql);    

if ( $stmt )    
{    
     //echo "Statement executed.<br>\n";    
}     
else     
{    
     echo "Error in statement execution.\n";    
     die( print_r( sqlsrv_errors(), true));    
}    
echo "<Table width='1200' border='1'>";
    echo "<tr>";
    echo "<Td>Program Name</td>";
    echo "<Td>Repeat</td>";
    echo "<Td>Yeld</td>";
    echo "<Td>MachineName</td>";
    echo "<Td>Cutting Time</td>";
    echo "<Td>PostedBy</td>";
    echo "<Td>Thickness</td>";
    echo "<Td>Material</td>";
    echo "<Td>data</td>";
    echo "</tr>";
while( $row = sqlsrv_fetch_array($stmt))    
{  

    echo "<tr>";
    echo "<Td><a href='xa.php?revice=".$row['ProgramName']."'>".$row['ProgramName']."</a></td>";
    echo "<Td><center>".$row['RepeatID']."</center></td>";
    echo "<Td><center>".$row['Yeld']."%</center></td>";
    echo "<Td>".$row['MachineName']."</td>";
    echo "<Td>".$row['CuttingTimeMins']."</td>";
    echo "<Td><center>".$row['PostedByUserID']."</td>";
    echo "<Td><center>".$row['Thickness']."</center></td>";
    echo "<Td><center>".$row['Material']."</center></td>";
    echo "</tr>";
}
/* Free statement and connection resources. */    
sqlsrv_free_stmt( $stmt);    
sqlsrv_close( $conn);

person Dashiphone    schedule 12.08.2019    source источник
comment
Пожалуйста, добавьте схему db-таблицы (столбцы и типы столбцов), примеры данных в таблице, ожидаемый результат и результат, который вы получаете в настоящее время. Кроме того, если вы получаете сообщение об ошибке 500, вам следует проверить журнал ошибок вашего сервера на наличие полного сообщения об ошибке (или включить display_errors в файле php.ini во время разработки).   -  person Magnus Eriksson    schedule 12.08.2019
comment
Единственный возможный столбец datetime — это PostDateTime (и это дважды в выражении). Но я не вижу вывод из этого столбца - например, вы никогда не повторяете $row["PostDateTime"]. Почему вы думаете, что причиной вашей ошибки являются datetime столбца? Спасибо.   -  person Zhorov    schedule 12.08.2019
comment
Этот же запрос работает в SQL. Но когда я пытаюсь получить те же данные из того же запроса, у меня возникает ошибка. echo ‹Td›‹center›.$row['PostDateTime'].‹/center›‹/td›; Когда я помещаю эту строку, я вижу ошибку 500. В php.ini я установил ошибку на ON. Является ли сервер IIS, я не знаю, как проверить ошибку com   -  person Dashiphone    schedule 12.08.2019
comment
@Dashiphone Хорошо, что за сообщение об ошибке?   -  person Zhorov    schedule 12.08.2019
comment
Устранимая фатальная ошибка: объект класса DateTime не может быть преобразован в строку в C:\intranet\x.php в строке 53.   -  person Dashiphone    schedule 12.08.2019
comment
@Dashiphone Это одно из решений: stackoverflow.com/questions/57392400/. Просто поместите "ReturnDatesAsStrings" => true в параметры подключения.   -  person Zhorov    schedule 12.08.2019
comment
Зачем бороться с функциями расширения? Просто вызовите DateTime::format() с форматом по вашему выбору .   -  person Álvaro González    schedule 12.08.2019