Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Doctrine 2:Không thể cập nhật cột DateTime trên SQL Server 2008apm

Tôi đã gặp sự cố này với Doctrine 2.5 và SQL Server 2012. Sự cố là trường cơ sở dữ liệu là loại DATETIME , nhưng doctirne chỉ hỗ trợ DATETIME2 trên SQLServer2008Platform trở lên.

Bạn không nên chỉnh sửa các tệp trong thư mục nhà cung cấp của mình. Câu trả lời đúng là tạo loại tùy chỉnh: Các loại ánh xạ tùy chỉnh của Doctrine . Trong trường hợp của tôi, tôi đã mở rộng DateTimeType hiện tại:

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

}

Và sau đó trong config.yml của Symfony:

    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. Con trỏ máy chủ SQL - lặp qua nhiều máy chủ và thực thi truy vấn

  2. Chức năng tích hợp để viết hoa chữ cái đầu tiên của mỗi từ

  3. SQL Client dành cho Mac OS X hoạt động với MS SQL Server

  4. Ghi nhật ký truy cập bảng bằng SQL Server Profiler

  5. Cách chỉ trả lại giá trị số trong SQL Server