2009-10-30 3 views
0

Doctrine ORM 1.0 insère les valeurs Datetime au format ISO8601; c'est-à-dire: '2009-10-23 12:31:22', mais pour une raison quelconque, en utilisant SQL Server 2008 Express comme ma base de données, lève une exception comme si la valeur insérée était NULL. est ici la requête:Doctrine n'insérant pas de datetime dans SQL Server

{sfDoctrineLogger} executeQuery : INSERT INTO [vbif_inventarios] ([anulado], [id_restaurante], [fecha_inventario]) VALUES (?, ?, ?) - (0, 1, 2009-10-29 06:06:00)

La colonne [fecha_inventario] est une colonne de DATETIME.

Ce qui me donne:

[err] {Doctrine_Connection_Mssql_Exception} SQLSTATE[HY000]: General error: 10007 No se puede insertar el valor NULL en la columna 'fecha_inventario', tabla 'vbif_operativo.dbo.vbif_inventarios'. La columna no admite valores NULL. Error de INSERT. [10007] (severity 5) [(null)]

Essayer d'insérer manuellement la même chaîne dans la datefield (Une requête via le Gestionnaire de SQL) colonne ne fonctionne pas non plus, est-il un moyen que je peux faire SQL Server acceptez ces chaînes correctement? J'ai lu que ça les soutient.

+0

Que voulez-vous dire "ne fonctionne pas non"? Par "Gestionnaire SQL", voulez-vous dire Management Studio ou Enterprise Manager ou Query Analyzer? Comment insérez-vous la chaîne dans la colonne? Est-ce que cette table ouverte/édite les n premières lignes, ou quelque chose d'autre? OrbMan est correct, vous ne pouvez pas simplement intégrer une date sans guillemets dans une déclaration de paramètre comme celle-ci, vous devez l'inclure dans des guillemets simples. Je ne suis pas familier avec Doctrine mais si possible avez-vous envisagé d'utiliser des procédures stockées? Par –

+0

que je voulais dire, Courir INSERT INTO [vbif_administracion] [dbo] [vbif_inventarios] ([id_restaurante], [fecha_inventario], [anulado]) VALUES (1, '2009-10-29 10:25..: 00 ', 0) GO dans SQL Management Studio, et oui OrbMan a raison (merci) mais comme j'utilise la doctrine, je n'écris pas directement l'instruction, donc ça ressemble un peu à un problème de doctrine. – madarve

Répondre

2

Vous devez indiquer la chaîne de date.

INSERT INTO [vbif_inventarios] ([anulado], [id_restaurante], [fecha_inventario]) VALUES (?, ?, ?) - (0, 1, '2009-10-29 06:06:00') 
Questions connexes