gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 20:28:24 25 4
gpt4 key购买 nike

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

我有一个写入 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com