[DBAL-397] PostgreSQL - getDateTimeTzFormatString() Created: 12/Dec/12 Updated: 17/Dec/12 Resolved: 16/Dec/12 |
|
| Status: | Resolved |
| Project: | Doctrine DBAL |
| Component/s: | Platforms |
| Affects Version/s: | 2.3.1 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Phill Pafford | Assignee: | Benjamin Eberlei |
| Resolution: | Invalid | Votes: | 0 |
| Labels: | datetime, dql, format, postgresql | ||
| Environment: |
PostgreSQL Database |
||
| Description |
|
In:
The function: getDateTimeTzFormatString() only returns one datetime format:
/**
* {@inheritDoc}
*/
public function getDateTimeTzFormatString()
{
//return 'Y-m-d H:i:sO'; // original format
return 'Y-m-d H:i:s.uO'; // format also needed
}
Here is the error I get using the original format: Could not convert database value "2012-12-07 16:01:52.580789-05" to Doctrine Type datetimetz. Expected format: Y-m-d H:i:s.O If I use this format: 'Y-m-d H:i:s.uO' it works. |
| Comments |
| Comment by Phill Pafford [ 12/Dec/12 ] |
|
adding html tags for code to display correctly |
| Comment by Benjamin Eberlei [ 16/Dec/12 ] |
|
DateTimeTz is created as 'TIMESTAMP(0) WITH TIME ZONE' on DBAL. If you have 'TIMESTAMP(6) WITH TIME ZONE' instead, then you have to create your own datatye. |
| Comment by Phill Pafford [ 17/Dec/12 ] |
|
Why would this be a new data type? I understand how to fix the problem with creating my own data type to handle the formatting issue and would even suggest just overriding the data type with
Type::overrideType('datetimetz', 'Doctrine\DBAL\Types\VarDateTimeType');
Type::overrideType('datetime', 'Doctrine\DBAL\Types\VarDateTimeType');
But it's not a new data type, it's a formatting issue. |