Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Doktrin 2:Tidak dapat memperbarui kolom DateTime di SQL Server 2008apm

Saya mengalami masalah ini dengan Doctrine 2.5 dan SQL Server 2012. Masalahnya adalah bidang basis data adalah ketik DATETIME , tetapi doctirne hanya mendukung DATETIME2 pada SQLServer2008Platform dan lebih tinggi.

Anda tidak boleh mengedit file di direktori vendor Anda. Jawaban yang benar adalah membuat jenis kustom:Jenis Pemetaan Khusus Doktrin . Dalam kasus saya, saya memperpanjang DateTimeType saat ini:

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

}

Dan kemudian di Symfony config.yml:

    types:
      datetime: AppBundle\Doctrine\Type\DateTime


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyebarkan SQL Server Compact Edition 4.0?

  2. Blokir, Blokir, Blokir di Pintu DBA dengan Pemblokiran SQL Server

  3. Apa cara berbeda untuk memasukkan data ke dalam Tabel SQL Server - Tutorial SQL Server / TSQL Bagian 100

  4. Apa itu Operator Logis ATAU di SQL Server - Tutorial SQL Server / TSQL Bagian 119

  5. perbarui dan masukkan kueri yang membuat kebuntuan