我正在尝试将测试值'10.06.2011 10:24'
插入informix 7.3(遗憾)数据库。
目标列是
虽然这些工作
select to_date('10.06.2011 10:24', "%d.%m.%Y %H:%M") from test;
INSERT into test values('10.06.2011')
这些不是
insert into test values('10.06.2011 10:24');
insert into test values(to_date('10.06.2011 10:24:00', "%d.%m.%Y %H:%M"))
我尝试了几个更多的东西,比如添加secounds,但是如果它有效则没有。所有我得到的错误是语法错误,没有任何详细信息。
任何建议都表示赞赏。
答案 0 :(得分:4)
您尝试插入10.06.2011
列的日期部分格式DATETIME
是错误的。
使用您的示例,可接受的格式为:2011-10-06 10:24:00
答案 1 :(得分:3)
您可以使用DATE
环境变量来操纵DBDATE
类型字段的显示和解释方式。将其设置为“DMY4”。会在您显示日期时格式化日期。
但正如弗兰克所说,DATETIME
的格式是固定的:它必须是'YYYY-MM-DD hh:mm:ss.fffff'
或其中的一部分,具体取决于相关DATETIME
列的比例和精度。< / p>
更新(第二条评论有点长......)
我对您对“目标列”格式的声明感到不安。如果您运行以下内容:
dbschema -d <database> -t <table>
...结果会告诉你Informix理解它的列定义。是DATE
还是DATETIME
?
您可以在DATETIME
列中插入DATE
值(时间会被截断),您可以将DATE
插入DATETIME
列(时间默认为午夜)。但该值必须能够强制转换为目标列格式,而DD.MM.YYYY hh:mm
对DATETIME
无效。