类DateTime的对象无法转换为字符串

时间:2013-01-26 00:35:11

标签: php sql-server datetime

我试图将数据从mssql服务器表中拉出来使用php在网页中打印html表,我正在下拉的数据是“DateTime”列,当我运行脚本时,我收到错误消息“对象类” DateTime无法转换为字符串“

以下是我的脚本。谁能指出我正确的方法?非常感谢你。

$sql = "SELECT  DateCreated FROM Item WHERE Inactive = '0' ";

$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}


while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
   $html_table = '<table border="1" cellspacing="0" cellpadding="2">';
  $html_table .= '<tr><td width="100" align="center">' .$row['DateCreated'].'</td></tr>';

$html_table .= '</table>'; 
echo $html_table;  


}
sqlsrv_free_stmt( $stmt);

1 个答案:

答案 0 :(得分:1)

这样做的一种方法是让SQL Engine本身在第一行代码中返回一个字符串值。 在PHP端可能有更多的格式化转换方式,但我对这方面的工作并不那么好。

$sql = "SELECT CONVERT(varchar(10), DateCreated, 101) AS DateCreatedString 
FROM Item WHERE Inactive = '0' ";

您可以使用this guide from microsoft中的第三个参数修改许多其他日期格式标准。我使用的101以mm / dd / yyyy格式给出了日期,但实际上每个格式下的格式,包括时间,月份名称,几个世纪,毫秒等,都可以使用其他代码返回。