php里面没有mssql,为什么没有正确使用PHP / MSSQL的日期/时间?

我最近将服务器上运行的PHP版本升级到5.3.20.从那以后,每当我从MSSQL数据库(mssql_query)中提取日期时,我就会得到奇怪的错误日期.

我检查了区域设置,默认时区设置为’Australia / Brisbane’,我还检查了php.ini设置并确认mssql.datetimeconvert已关闭.当选项打开时,日期似乎通过预先格式化(没有秒),但是当关闭该选项时,我得到一个看起来像这样的日期.

mssql.datetimeconvert (off): 2013-07-38 16:00:20

mssql.datetimeconvert (on): Feb 07 2013 09:37PM

有一个简单的解决方案吗?

以下是比较mysql / mssql源之间输出的代码:

$rs = $db->query("select id, servertime from bobstable where id = 86427420");

$mss_set = mssql_query("select id, servertime from T_bobstable WITH (NOLOCK) where id = 86427420");

$myrow = $rs->fetch_assoc();

$msrow = mssql_fetch_array($mss_set);

var_dump($myrow);

echo "
";

var_dump($msrow);

产出如下:

array(2) { ["id"]=> string(8) "86427420" ["servertime"]=> string(19) "2013-02-08 14:00:24" }

array(4) { [0]=> float(86427420) ["id"]=> float(86427420) [1]=> string(19) "2013-08-39 24:673:0" ["servertime"]=> string(19) "2013-08-39 24:673:0" }

这是我从SQL Server Studio收到的输出

2013-02-08 14:00:24.673

我可以理解它是如何被格式化的(因为下面已经解决了问题的这一部分),但是我无法理解为什么它会以这种格式出现,或者如何更改PHP的配置以避免这种情况.在我升级PHP之前,它曾经是2013-02-08 14:00:24.有没有人经历过或看到过这种情况?

解决方法:

找到一个似乎坚持的解决方案: –

我降级了服务器上安装的FreeTDS版本:

freetds.x86_64 0.91-2.el5 to

freetds.x86_64 0.64-11.el5.centos

这确定了日期.

不知道为什么.

标签:php,datetime,sql-server

来源: https://codeday.me/bug/20190709/1411345.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值