【问题标题】:How do i insert a date from c#?如何从 c# 中插入日期?
【发布时间】:2022-01-23 19:10:48
【问题描述】:

我有这个插页:

insert into sap_paghe (nome_elaborazione, data_elaborazione, tipo, data_registrazione, data_scadenza, data_documento, osservazioni, data_allocazione_iva) values ('Nome elaborazione', '2021-12-22', 'H', '2021-01-31', '2021-01-31', '2021-01-31', 'RETRIBUZIONI GEN. 2021', '2021-01-31');

在 SQLWorkbench 中完美运行,但使用 C# 时出现此错误

ERROR [HY000] [Informix][Informix ODBC Driver][Informix]Invalid year in date

我 100% 确定连接正常,因为其他插入工作正常,只是带有日期的插入。有什么建议吗?

代码如下:

OdbcCommand command = new OdbcCommand(insert..., DbConnection);
dataAdapter.InsertCommand = command;
dataAdapter.InsertCommand.ExecuteNonQuery();
command.Dispose();

【问题讨论】:

  • 请展示您如何从 C# 执行查询
  • insert 中的日期格式均正确无误,没有任何无效年份。我会仔细检查列的数量和类型。也许这些列在您的插入中没有对齐。
  • 使用合适的参数

标签: c# sql odbc informix


【解决方案1】:

原来我只需要输入TO_DATE('2021-01-31','%Y-%m-%d') 而不仅仅是日期

【讨论】:

  • Informix DBDATE 环境变量默认为MDY4/,并控制日期的预期格式。我使用DBDATE='Y4MD-' 运行,这使得 ISO 标准(ISO 8601、ISO 9075)日期格式有效。您也可以使用一些相关变量(GL_DATE,...),但可能不应该使用。您的解决方法以更改 SQL 代码为代价来解决问题。设置 DBDATE(这在 Unix 环境中是微不足道的;我不太确定 C# 和 Windows 的世界)更简单,因为它不需要更改代码,但确保正确设置环境是一个问题。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多