sql >> Databasteknik >  >> RDS >> Sqlserver

Lära 2:Kan inte uppdatera kolumnen DateTime på SQL Server 2008apm

Jag stötte på det här problemet med Doctrine 2.5 och SQL Server 2012. Problemet är att databasfältet är av typen DATETIME , men doctirne stöder bara DATETIME2 på SQLServer2008Platform och uppåt.

Du bör inte redigera filer i din leverantörskatalog. Det korrekta svaret är att skapa en anpassad typ:Doctrine anpassade mappningstyper . I mitt fall utökade jag den nuvarande DateTimeType:

<?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;
    }

}

Och sedan i Symfony config.yml:

    types:
      datetime: AppBundle\Doctrine\Type\DateTime


  1. Det går inte att visa någon utdata i en JTable med MySql-data

  2. VÄLJ många till många tabeller i en fråga

  3. Släpp och återskapa aktuella index automatiskt

  4. behöver uppdatering för mysql-fråga för att välja datumintervall för bokning av ett hotellrum eller någonting