Формат даты и времени PDO для MSSQL / dblib

База данных MSSQL 2005 имеет сопоставление «German_Phonebook_BIN» (но это не важно). Подключение к базе данных осуществляется через PDO и FreeTDS (с использованием PHP в Debian Squeeze). Когда я пытаюсь выбрать значения datetime из таблицы, я получаю такие результаты:

1 апреля 2008 г. 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)

Хорошо, еще немного информации (показаны только важные фрагменты):

<?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]"));
10
задан rabudde 27 November 2011 в 11:56
поделиться