Bug #54648 [Com]: PDO::MSSQL forces format of datetime fields
| From: | d dot vergini at gameprog dot it | Date: | Tue, 12 Feb 2013 16:45:52 +0000 |
| Subject: | Bug #54648 [Com]: PDO::MSSQL forces format of datetime fields | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-176583@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=54648&edit=1
ID: 54648
Comment by: d dot vergini at gameprog dot it
Reported by: mail at tomsommer dot dk
Summary: PDO::MSSQL forces format of datetime fields
Status: Open
Type: Bug
Package: PDO related
Operating System: Linux
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
workaround if using freetds library
edit (or create if not exists)
/etc/freetds/locales.conf
with the following 2 rows
[default]
date format = %Y-%m-%d %H:%M:%S.%z
Previous Comments:
------------------------------------------------------------------------
[2011-08-14 02:09:29] ssufficool at gmail dot com
It seems the standard ANSI SQL date/time format should be YYYY-MM-DD HH:MM:SS.F
The PDO and MSSQL conversions drop the fraction. Unfortunately this cause major breakage if it were
"standardized" since php does not convert fractional times.
IMHO, all PDO drivers should return the date/time & interval values in YYYY-MM-DD HH:MM:SS
format.
------------------------------------------------------------------------
[2011-05-02 10:06:25] mail at tomsommer dot dk
Description:
------------
The PDO::MSSQL layer forces a format upon datetime fields, which cannot be altered. The MSSQL
extension does not.
mssql.datetimeconvert apparently has no effect on PDO.
Test script:
---------------
ini_set('mssql.datetimeconvert', 0);
$sql = mssql_query("SELECT GETDATE()");
var_dump(mssql_fetch_assoc($sql));
var_dump($mssql->query("SELECT GETDATE()")->fetch());
Expected result:
----------------
array
'computed' => string '2011-05-02 10:02:08' (length=19)
array
'computed' => string '2011-05-02 10:02:08' (length=19)
0 => string '2011-05-02 10:02:08' (length=19)
Actual result:
--------------
array
'computed' => string '2011-05-02 10:02:08' (length=19)
array
'computed' => string 'maj 02 2011 10:02:08' (length=20)
0 => string 'maj 02 2011 10:02:08' (length=20)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=54648&edit=1