我正在运行以下代码:
<?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);
?>