c# - 将以毫秒为单位的 Sqlite Unix Epoch 转换为 Datetime YYYY-MM-DD HH :MM:SS. SSS

标签 c# sqlite datetime

我一直在寻找这个问题的解决方案,可能有些人可以帮助我或为我指明正确的方向。 我确实在这里阅读了所有与此相关的问答,但仍然没有找到解决方案。

我有一个写入 SQLite 数据库的 C# 程序。它以毫秒为单位写入事件和存储时间(以毫秒为单位的 Unix 纪元 - 1511737200042/1511737200秒部分 042 毫秒部分)。

我试过:

SELECT datetime(time/1000,'unixepoch') from table1;

= 2017-11-26 23:00:00

相当于

SELECT strftime('%d-%m-%Y %H:%M:%f', datetime(time/1000, 'unixepoch')) FROM table1;

=26-11-2017 23:00:00.000

但是结果没有ms粒度。

我看到这是因为我将时间除以 1000,然后强制计算当时不存在的分数。但如果我改变那个部门,我会得到完全不同的时间。

我找不到解决这个问题的方法。

我现在在考虑是否应该将毫秒(最后 3 位数字)存储在另一列中,然后加入两列。

谁能指点一下?

谢谢 亲切的问候,

PS:使用 SQL Server 导入和导出向导“时间”将整数 NOT NULL 1511737200042 转换为 2147483647 10 位数字。同样在 PowerBi 中。

最佳答案

全部date functions接受相同的日期格式和修饰符,因此您可以简单地删除嵌套的 datetime 调用。 你需要做一个浮点除法来保留毫秒:

SELECT strftime('%d-%m-%Y %H:%M:%f', time/1000.0, 'unixepoch') FROM table1;

关于c# - 将以毫秒为单位的 Sqlite Unix Epoch 转换为 Datetime YYYY-MM-DD HH :MM:SS. SSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47587773/

相关文章:

python-3.x - Pytz 在没有 DST 的情况下将时间转换为 UTC

c# - DateTimeKind 不会更改 UTC/Local/Unspecified 之间日期的任何部分

c# - 在 Win 7 RC1 上从 IIS 获取目录条目时出错

c# - 在 ASP.NET 中,如何读取位于我的页面所在的同一文件夹中的文件?

c# - 在路径中合并 %USERPROFILE%

sqlite - Ionic PouchDb Sqlite 插件问题

swift - 如何在 SQLite.swift 中升级数据库版本并在 swift 表中添加新列

SQLite/DB 浏览器中的 SQL 查询不返回任何值

php - 如何在 MySQL 中将 DATE 和 TIME 与 DATETIME 分开?

c# - ReadonlySpan 作为属性