时间:2021-07-01 10:21:17 帮助过:25人阅读
先尝试用 date 函数转换
比如你读取的数据在 $r 数组中,则
echo date('Y-m-d H:i:s', $r[0]['UpdateTime']);
看看
如不行,则请贴出
echo serialize($r);
的结果
应该选择确实有值的记录
===源码
$sqlsrv = new Sqlsrv();
$sql = "SELECT TOP 1 [UpdateTime]
,[RegistTime]
,[EndTime]
FROM [User] ";
$stmt=$sqlsrv->select($sql);
p($stmt);
echo date('Y-m-d H:i:s', $stmt[0]['UpdateTime']);//此行没有被打印出来
echo '
';
echo serialize($stmt);
===以下为打印结果
Array
(
[0] => Array
(
[UpdateTime] => DateTime Object
(
)
[RegistTime] => DateTime Object
(
)
[EndTime] => DateTime Object
(
)
)
)
a:1:{i:0;a:3:{s:10:"UpdateTime";O:8:"DateTime":0:{}s:10:"RegistTime";O:8:"DateTime":0:{}s:7:"EndTime";O:8:"DateTime":0:{}}}
序列化后也看不到内容,表示你的字段为空
你应该选择有数据的字段进行测试
在sqlserver里面 是有数据的 不是空的 (在百度到的帖子里 别人读取的时间不友好 我遇到的却是一个datetime object 而且 用get_object_vars()得到的是一个空数组 真不知道怎么整这个对象)
UserId Account PassWord LoginNumber UpdateTime RegistTime EndTime Status CreateTime MachineId
10 P6000001 123456 4 2013-09-27 13:16:44.503 2013-03-21 10:18:37.000 2019-04-19 17:27:53.047 0 2013-04-19 17:27:53.050 135
贴出你的代码
贴出你的代码
";
}
//select
function select($sql,$affected=2){
$result = sqlsrv_query($this->connect,$sql);
//var_dump($result);
$resultArr = array();
if($affected==2){
while($row =sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){
$resultArr[] =$row;
}
}else{
$resultArr = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC);
}
return $resultArr;
}
//query
function query($sql){
return sqlsrv_query($this->connect,$sql);
}
//
function affected($stmt){
return sqlsrv_rows_affected( $stmt);
}
}
date_default_timezone_set("PRC");查询时用CONVERT()转换一下就OK了
$sql = "SELECT TOP 1
CONVERT(varchar(19),UpdateTime,120)as UpdateTime
FROM [User] ";
$stmt=$sqlsrv->select($sql);