您尝试使用doctrine 2 ORM从oracle数据库检索数据时遇到此错误:
Could not convert database value "2000-01-01 00:00:00" to Doctrine Type time.
Expected format: 1900-01-01 H:i:s
The type of the requested column is time. but oracle stores it in DateTime format and it
set date to 2000-01-01. Doctrine retrieve the time using mask "1900-01-01".
当我使用Doctrine(Symfony)插入新实体时,它会通过,但是当我使用Oracle SqlDeveloper在数据库表中插入新的recored时,它将无法工作。
如何解决这个问题?
我使用symfony Framework 2.4.3 + Doctrine
修改
这是输出异常:
2. at ConversionException ::conversionFailedFormat ('2000-01-01 02:00:00', 'time', '1900-01-01 H:i:s')
in /var/www/saga-print/shared/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php at line 67
3. at TimeType ->convertToPHPValue ('2000-01-01 02:00:00', object(OraclePlatform))
in /var/www/saga-print/shared/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php at line 330
当我将年份更改为1900时,它可以正常工作。
这是属性映射
/**
* @var \DateTime
*
* @ORM\Column(name="heure_livraison", type="time", nullable=true)
*
* @Assert\Time(message="Le champ 'Heure de livraison' n'est pas une heure valide.")
*/
protected $heureLivraison;