Uploaded image for project: 'Doctrine DBAL'
  1. Doctrine DBAL
  2. DBAL-397

PostgreSQL - getDateTimeTzFormatString()

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Invalid
    • Affects Version/s: 2.3.1
    • Fix Version/s: None
    • Component/s: Platforms
    • Environment:
      PostgreSQL Database

      Description

      In:

      • vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php

      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.

        Activity

        Hide
        ppafford Phill Pafford added a comment -

        adding html tags for code to display correctly

        Show
        ppafford Phill Pafford added a comment - adding html tags for code to display correctly
        Hide
        beberlei Benjamin Eberlei added a comment -

        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.

        Show
        beberlei Benjamin Eberlei added a comment - 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.
        Hide
        ppafford Phill Pafford added a comment - - edited

        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.

        Show
        ppafford Phill Pafford added a comment - - edited 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.

          People

          • Assignee:
            beberlei Benjamin Eberlei
            Reporter:
            ppafford Phill Pafford
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: