来自SQL SERVER的echo DATETIME引发500错误



我正在运行以下代码:

<?php
include "php/connection.php";
$data = $_GET['data'];
$tsql = "SELECT * FROM Customer WHERE CustomerNumber = ".$data;
$result = sqlsrv_query($link, $tsql);
$row = sqlsrv_fetch_array($result);
echo $row['endDate']->format("Y-m-d H:i:s");
?>

结果集的收集没有问题,问题是尝试将其作为字符串输出,因为这会引发500错误,我怀疑这是因为它是作为对象返回的,但无论我尝试什么,我都无法获得作为字符串的数据。

endDate列保存以下格式的数据:

2015-04-16 08:22:00.000

该列的格式为"datetime"。

编辑:

代码更改为反映当前代码,回波现在显示"1900-01-01 00:00:00",但应该显示的实际数据是"2015-04-16 08:22:00.000"

您的日期被保存为DateTime对象,因此不会显示。

以下是的示例

datetest = new DateTime();
$row = array();
$row["endDate"] = $datetest;
print_r($datetest);
echo "End Date :: ".$row["endDate"]->format("Y-m-d H:i:s");

print_r()语句将打印

DateTime Object ( [date] => 2014-04-16 15:04:41 [timezone_type] => 3 [timezone] => Asia/Calcutta )

你的情况也是如此。

所以在你的情况下

   echo $row['endDate']->format("Y-m-d H:i:s");

通过在我的连接选项中将ReturnDatesAsStrings设置为true解决了问题,下面是一个示例:

<?php
$serverName = "MyServer";
$connectionInfo = array( "Database"=>"AdventureWorks", 'ReturnDatesAsStrings '=> true);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
   echo "Could not connect.n";
   die( print_r( sqlsrv_errors(), true));
}
sqlsrv_close( $conn);
?>

相关内容

  • 没有找到相关文章

最新更新