我现在真的很沮丧,因为我无法将 VB.NET 手动创建的 DATE 数据类型放入具有 TIMESTAMP 数据类型的 DB2 列中。
我尝试了几种不同的方法来处理这个问题,但无论我做什么,我总是得到错误“SQL0180N:日期时间值的字符串表示的语法不正确”。
我的应用程序中处理从 String 到 DATE 的转换的部分就在这里:
Dim neuesDatum As Date
neuesDatum = CDate(jahr & "-" & "0" & monat & "-01 00:00:00")
转换的字符串如下所示:2013-01-01 00:00:00
我还尝试了日期的德语格式(01.01.203),尝试使用没有最后一部分的字符串(00:00:00),但无论我做什么,它总是以相同的方式结束。
我使用存储过程将数据插入表中。日期作为参数“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
数据表中“Sollmonat”的数据类型也是 TIMESTAMP。
伙计们,如果你能在这里帮助我,我会很高兴的。我完全没有想法,不,我无法将日期保存为表中的 VARCHAR。保存为数据库中的 DATE 可能是可能的,但我相信我在那里会遇到同样的问题。
提前致谢!
@Steve这只会让整个事情变得更加混乱,因为我自己构建了一些类,允许我将类映射到数据表中,但请放心,这不是搞砸的。当我使用非手动创建的日期时,例如 Date.Now,它可以正常工作。