sql >> Database >  >> RDS >> Sqlserver

Leer 2:Kan DateTime-kolom niet bijwerken op SQL Server 2008apm

Ik kwam dit probleem tegen met Doctrine 2.5 en SQL Server 2012. Het probleem is dat het databaseveld DATETIME is. , maar doctirne ondersteunt alleen DATETIME2 op SQLServer2008Platform en hoger.

U mag geen bestanden in uw leveranciersmap bewerken. Het juiste antwoord is om een ​​aangepast type te maken:Doctrine Custom Mapping Types . In mijn geval heb ik het huidige DateTimeType uitgebreid:

<?php

namespace AppBundle\Doctrine\Type;

use Doctrine\DBAL\Types\DateTimeType;
use Doctrine\DBAL\Platforms\AbstractPlatform;

class DateTime extends DateTimeType
{
    private $dateTimeFormatString = 'Y-m-d H:i:s.000';

    public function convertToDatabaseValue($value, AbstractPlatform $platform)
    {
        return ($value !== null)
            ? $value->format($this->dateTimeFormatString) : null;
    }

}

En dan in de Symfony config.yml:

    types:
      datetime: AppBundle\Doctrine\Type\DateTime


  1. Wat is SQL Server? (Definitie, versies, edities)

  2. Psycopg2 verbruikt geheugen bij grote selectiequery's

  3. voeg record in nlog toe aan veld met dataType =datum

  4. PostgreSQL-prestaties van ad-hoc SQL versus functies