我正在构建一个工具,显示Skype持久聊天信息以及参与者信息。对于其中一个要求,我需要在给定的日期范围内过滤tblComplianceParticipant表。
我尝试了很多不同的方法来转换tblComplianceParticipant。“加入”列到人类可读的格式,例如“yyyy-mm-dd'等”,但到目前为止还没有运气。此列中的数据是18位数字,以" 63"开头。例如636572952018269911和636455769656388453。
这些值也不在' windows文件时间'格式,因为https://www.epochconverter.com/ldap给出了具有上述值的未来日期。
我试着在18 digit timestamp to Local Time上查看@ JonSkeet的答案,但那是c#具体的。我试图在SQL中复制类似的逻辑,但没有运气。
有没有办法将这18位数转换成正常日期格式并执行where子句?
答案 0 :(得分:0)
提供所需输出的在线转换器:https://www.venea.net/web/net_ticks_datetime_converter#net_ticks_to_date_time_and_unix_timestamp_conversion
但是,我正在寻找自己转换它的底层逻辑,因为我需要在SQL server存储过程中执行where子句。
我们的Skype管理员为我提供了一个SQL功能(fnDateToTicks),它是Skype数据库(mgc)的一部分(之前,我没有获得许可,所以看不到它)。我正在与他核实这是微软的内部IP还是标准解决方案,以便我可以与更大的社区分享。
答案 1 :(得分:-1)
我能想到的唯一值得尝试的事情是:
select CAST ([Timestamp Column] as datetime)
将格式化为yyyy-mm-dd 00:00:00:000
这可能适用于SQL Server 2008及更高版本