将应用程序移动到具有更新软件的新服务器后(从 php 5.2.17 -> 5.3.15、FreeTDS 0.64 -> 0.82 移动)
SELECT GETDATE()
和任何其他日期时间函数/列产生类似于:
2012-06-219 51:527:
// proper time: 2012-08-06 09:33:02
我知道我可以在 select 中使用 convert
,但是 DB 中有很多我无法更改的存储过程。
我尝试更改 /etc/locales.conf
并设置 date format = %Y-%m-%d %H:%M:%S
,并且使用 ini_set('mssql.datetimeconvert',1);
但 freetds 似乎忽略它并返回 Aug 06 2012 09:33AM
有没有一种方法可以在不修改每个查询的情况下以标准格式检索日期时间列?
最佳答案
我以一种蛮力的方式解决了这个问题 - 在 /etc/locales.conf
中的所有语言环境中更改了 date format
,我不知道是哪一个有效,但我很确定它们都没有用作系统区域设置。
无论如何,不建议使用datetimeconvert
,并且在某些数据库抽象层库(在这种情况下为adodb)中关闭,所以我仍然感兴趣是否有任何方法可以让它显示正确的日期时间
关于php - FreeTDS 奇怪的日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11824323/