簡體   English   中英

從SQL SERVER回顯DATETIME引發500錯誤

[英]echo DATETIME from SQL SERVER throws 500 error

我正在運行以下代碼:

<?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

該列為“日期時間”格式。

編輯:

代碼已更改以反映當前代碼,回顯現在顯示為“ 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);
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM