【问题标题】:SQL Lite Data Types - C#SQLite 数据类型 - C#
【发布时间】:2012-05-29 18:15:18
【问题描述】:

我正在通过 C# 应用程序做一些基本的 SQL Lite 数据库工作。我已按照教程here 进行操作,并且基本可以正常工作。但是,我正在使用的数据库中有一些 UNIX 时间戳。我希望将这些转换为标准时间。通过简单地将秒数添加到 UNIX 开始时间(1970 年 1 月 1 日),我又一次完成了。

但是,当我希望将此数据转换回 dataGridView 时,我的问题就出现了。由于数据已经被插入到网格视图中,它已经清楚地将时间列格式化为 Int64(来自 UNIX 秒值),但我试图将 DateTime 值转换回它,从而导致错误。

即使我在将数据转换为 dataGridView 之前对其进行了修改,我仍然会收到此错误,这表明幕后还有进一步的事情发生。我假设我查询数据库的方式也带回了这种格式。

提前感谢您的帮助!

【问题讨论】:

  • 请发布您用于选择数据的查询,以及您如何将数据绑定到 dataGridView
  • 完整查询代码在这里 - String query = "select value1 \"Header1\", value2 \"Header2\", value3 \"Header3\", timestamp \"Time\" from Table"; Messages = db.GetDataTable(query); dataGridView1.DataSource = Messages;

标签: c# database sqlite


【解决方案1】:

不用在C#中转换unix时间戳,你可以使用SQLite DateTime Function,然后绑定到datagridview

SELECT datetime(1092941466, 'unixepoch');

【讨论】:

  • 您好,我尝试过这种方法,但出现了不正确的语法错误。这就是我尝试过的 - "select datetime(timestamp , 'unixepoch')\"Time\" from Table";
  • @BenCollins,我认为你需要使用单引号而不是双引号,“时间”应该是string myquery = @"select datetime(timestamp , 'unixepoch') 'Time' from Table";
  • 时间是我提供给数据网格视图的列名。时间戳是我要从数据库中提取的字段。
  • 像这样修复它datetime(timestamp , 'unixepoch') \"Time\"。感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
相关资源
最近更新 更多