Je suis vraiment très frustré en ce moment, car je ne parviens tout simplement pas à obtenir un type de données DATE créé manuellement par VB.NET dans une colonne DB2 qui a le type de données TIMESTAMP.Conversion de vb.net String en DB2 Timestamp
J'ai essayé plusieurs façons de gérer cela, mais quoi que je fasse, j'ai toujours l'erreur "SQL0180N: La syntaxe de la représentation sous forme de chaîne d'une valeur datetime est incorrecte".
La partie dans mon application qui gère la conversion de chaîne à ce jour est ici:
Dim neuesDatum As Date
neuesDatum = CDate(jahr & "-" & "0" & monat & "-01 00:00:00")
La chaîne de conversion ressemble à ceci: 2013-01-01 00:00:00
J'ai aussi essayé le format allemand d'une date (01.01.203), essayé d'utiliser la chaîne sans la dernière partie (00:00:00), mais peu importe ce que je fais, ça finit toujours de la même façon. J'utilise une procédure stockée pour insérer les données dans une table. La date est livrée avec le paramètre "SollMonat".
CREATE OR REPLACE PROCEDURE "ADDON21C"."STP_BEITRAGSSATZ_ADD"
(
IN @Id BIGINT,
IN @Typ VARCHAR(100),
**IN @SollMonat TIMESTAMP,**
IN @G VARCHAR(100),
IN @F VARCHAR(100),
IN @H VARCHAR(100),
IN @U1 VARCHAR(100),
IN @U2 VARCHAR(100),
IN @U1erhoeht VARCHAR(100),
IN @U1ermaessigt VARCHAR(100),
IN @RV VARCHAR(100),
IN @ALV VARCHAR(100),
IN @P VARCHAR(100),
IN @RVgf VARCHAR(100),
IN @KVgf VARCHAR(100),
IN @ZusatzKV VARCHAR(100),
IN @ZusatzPV VARCHAR(100),
IN @Inso VARCHAR(100),
OUT @result BIGINT
)
LANGUAGE SQL
SPECIFIC SQL12080109131643
BEGIN
IF @Id IS NULL OR @Id = 0
THEN
INSERT INTO "ADDON21C".BS
(Typ, Sollmonat, G, F, H, U1, U2, U1erhoeht, U1ermaessigt)
VALUES
(@Typ, @SollMonat, @G, @F, @H, @U1, @U2, @U1erhoeht, @U1ermaessigt);
SET @result = IDENTITY_VAL_LOCAL();
END IF;
END
Le type de données pour "Sollmonat" à l'intérieur du datatable est aussi TIMESTAMP.
Les gars, je serais très heureux si vous pouvez m'aider ici. Je suis complètement à court d'idées et non, je ne peux pas enregistrer la date en tant que VARCHAR dans la table. L'enregistrement est comme DATE dans la base de données pourrait être possible, mais je crois que j'aurais le même problème là.
Merci d'avance!
@Steve Cela ne ferait que rendre le tout plus confus, parce que je me construis quelques classes qui me permettent de mapper des classes en données, mais soyez assuré que ce n'est pas ce que je veux dire. Lorsque j'utilise une date non créée manuellement, comme Date.Now par exemple, cela fonctionne correctement.
Pourriez-vous afficher le code dans lequel vous transmettez la valeur TIMESTAMP à la procédure stockée sous-jacente? – Steve
Un simple CAST (@SollMonat As TIMESTAMP) 'ne le fera-t-il pas? –
Non, la distribution n'aide pas. Toujours la même erreur. – OhSnap