如何解决将十六进制值从SQL Server转换为C#中的日期时间
我需要将十六进制值中的8个字节转换为C#中的新日期时间。该功能应与在SQL Server中的功能相同。
我的十六进制值为字符串“ 0000AC0500000000”或字节列表:
["0","0","172","5"," 0 ",]
因此,我需要获取日期“ 2020-07-27 00:00:00:000”。 SQL Server的转换完美地恢复了只有8个字节的毫秒数。如图convert function in SQL Server
解决方法
使用以下内容
string input = "0000AC0500000000";
int daysFrom1900 = int.Parse(input.Substring(0,8),NumberStyles.HexNumber);
int ticksFromMidnight = int.Parse(input.Substring(8),NumberStyles.HexNumber);
DateTime year1900 = new DateTime(1900,1,1);
DateTime date = year1900.AddDays(daysFrom1900).AddTicks(ticksFromMidnight*(10/3.0));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。