Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Sqlite Unix历元(毫秒)转换为日期时间YYYY-MM-DD HH:MM:SS.SSS_C#_Sqlite_Datetime - Fatal编程技术网

C# 将Sqlite Unix历元(毫秒)转换为日期时间YYYY-MM-DD HH:MM:SS.SSS

C# 将Sqlite Unix历元(毫秒)转换为日期时间YYYY-MM-DD HH:MM:SS.SSS,c#,sqlite,datetime,C#,Sqlite,Datetime,我一直在寻找解决这个问题的方法,也许有些方法可以帮助我或者为我指明正确的方向。 我确实在这里阅读了所有与此相关的问答,但仍然没有找到解决方案 我有一个c程序,可以写入SQLite数据库。它以毫秒为单位写入事件并将时间存储在ms-1511737200042/1511737200sec部分042 ms部分中 我试过: SELECT datetime(time/1000,'unixepoch') from table1; =2017-11-26 23:00:00 这相当于 SELECT strfti

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

我有一个c程序,可以写入SQLite数据库。它以毫秒为单位写入事件并将时间存储在ms-1511737200042/1511737200sec部分042 ms部分中

我试过:

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导入和导出向导导入SQL时,一个非空整数1511737200042转换为2147483647一个10位数。同样在PowerBi中

都接受相同的日期格式和修饰符,因此您只需删除嵌套的datetime调用即可。 您需要进行浮点除法以保留毫秒数:

从表1中选择strftime“%d-%m-%Y%H:%m:%f”,time/1000.0,“unixepoch”;
除以1000.0?或者用你自己的代码来处理计算?非常感谢@CL。我本来打算给你打分的,但似乎我做不到。您的答案提供了正确的格式。和前面的一样,但更简洁。非常感谢您。@Helder您可以通过单击左侧的绿色复选标记来标记此答案是否正确。@CL。除以浮点数以保留毫秒是我的关键所在。很好的答案+1。