MSSQL 2005数据库有整理“German_Phonebook_BIN”(但这不重要)。通过PDO和FreeTDS(在Debian Squeeze下使用PHP)连接到db。当我尝试从表中选择日期时间值我得到的结果类似:MSSQL/dblib的PDO日期时间格式
2008年4月1日12:00:00:000
但我希望得到
2008-01-01 00:00 :00
(注意,时间00:00:00转换为12:00:00,不知道为什么00:00 = 12:00 ???) 我没有办法操纵SELECT
声明(用于与CONVERT
进行转换)。我发现在PDO中没有选择设置日期格式的选项。查询运行前的SET DATEFORMAT
和SET LANGUAGE
不会影响到这一点。 任何人都可以提供一个提示,这可以做到(而且只能做)在PDO? (顺便说一句PEAR :: MBD2返回datetime列于预期的格式,但MDB2是可怕的,当它与UTF-8和MSSQL工作)
OK,一些更多的信息(只显示了重要的片段):
<?php
$this->_dsn = 'dblib:host=' . $this->_db['host'] . ';dbname=' . $this->_db['database'] . ';charset=UTF-8';
$this->_handle = new PDO($this->_dsn, $this->_db['user'], $this->_db['password']);
print_r($this->_handle->query("SELECT [date_column] FROM [some_table]"));
这种现象是不正常的。你能展示你如何选择这些值以及如何用PHP输出它们? –
看看https://bugs.php.net/bug.php?id=54648 – rabudde
呃,我明白了。 --- –