c# 读取sqlite3中的SQL type=TIMESTAMP字段时报错

public static DateTime safeGetDateTime(SQLiteDataReader reader, string field)
        {
            int column = reader.GetOrdinal(field);
            if (!reader.IsDBNull(column))
            {
                return reader.GetDateTime(column);
            }

            return DateTime.Now;
        }
private void process(string dbPath)
        {
 
            int nNum = 0;
            SQLiteConnection connection = null;
            try
            {
                connection = new SQLiteConnection("Data Source=" + dbPath + ";version=3;new=False;datetimeformat=CurrentCulture;");
                connection.Open();
                SQLiteCommand command = new SQLiteCommand(connection);
                command.CommandText = "select    ZADDRESS,ZDURATION,ZORIGINATED, ZDATE ,Cast(ZDATE as nvarchar(20)) as ZDATE_NEW from  ZCALLRECORD ;";
                SQLiteDataReader reader = command.ExecuteReader(); 
             
                while (reader.Read())
                {
                    try
                    {
                        DateTime dateTime = SqliteDBTool.safeGetDateTime(reader, "ZDATE") ;
                        string  number = Encoding.UTF8.GetString(SqliteDBTool.safeGetBytes(reader, "ZADDRESS"));
                         
                        int dateTimeIndex=  reader.GetOrdinal("ZDATE_NEW") ; 
                        var date=reader["ZDATE_NEW"].ToString(); 
                        string duration = SqliteDBTool.safeGetFloat(reader, "ZDURATION").ToString("F1");

                    }
                    catch(Exception e)
                    {
                        add_log(e.ToString());
                    }
                }

                 
                reader.Close();
                connection.Close();
                connection.Dispose();
                 
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                if (connection != null)
                {
                    connection.Close();
                    connection.Dispose();
                }
            }
        }

process(@"C:\CallHistory.storedata");

使用SQLite抛出异常: 该字符串未被识别为有效的 DateTime 错误。

参考如下 

c# - sqlite throwing a "String not recognized as a valid datetime" - Stack Overflow

但我就想把数据读出来,就要使用Cast(ZDATE as nvarchar(20)) as ZDATE_NEW 把数据格式转一下,然后再用        var date=reader["ZDATE_NEW"].ToString(); 读出数据然后再慢慢转换

double timestamp = 6220820844.00406;

            // 转换为 DateTime
            DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeSeconds((long)timestamp);
            DateTime dateTime = dateTimeOffset.UtcDateTime;
            add_log(dateTime.ToString("s"));

select ZADDRESS,ZDURATION,ZORIGINATED,ZDATE ,Cast(ZDATE as nvarchar(20)) as ZDATE_NEW from  ZCALLRECORD ;

 

相关推荐

  1. sqlite - sqlite3_exec - c++回调函数处理

    2023-12-23 08:32:02       73 阅读
  2. sqlite3使用问题

    2023-12-23 08:32:02       78 阅读
  3. [C++] sqlite3_get_table 使用

    2023-12-23 08:32:02       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 08:32:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 08:32:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 08:32:02       87 阅读
  4. Python语言-面向对象

    2023-12-23 08:32:02       96 阅读

热门阅读

  1. CSS中页面的布局案例-利用浮动

    2023-12-23 08:32:02       54 阅读
  2. 【ES实战】ES6.7的tar包离线安装帮助手册

    2023-12-23 08:32:02       56 阅读
  3. Angular.js 实现带手柄自由调整页面大小的功能

    2023-12-23 08:32:02       56 阅读
  4. python开发:日志工具logging的使用

    2023-12-23 08:32:02       67 阅读
  5. Python高级语法与正则表达式

    2023-12-23 08:32:02       60 阅读
  6. Golang 在 Mac、Linux、Windows 下如何交叉编译

    2023-12-23 08:32:02       62 阅读
  7. 大数据开发职业规划

    2023-12-23 08:32:02       68 阅读