tôi lưu giá trị long
của tôi trong một bảng SQL Server như varbinary(max)
:SQL Server varbinary bigint với các giá trị khác nhau BitConverter.ToInt64
var savedValue = BitConverter.GetBytes(longValue);
Bây giờ tôi cần phải làm việc với giá trị đó trong truy vấn T-SQL, nhưng khi Tôi đang cố gắng nhận giá trị:
select cast(Value as bigint) from dbo.MyValues
Nó trả về giá trị số khác nhau. Ví dụ: nếu tôi đã lưu -8588797048854775808
trong .NET, trong T-SQL, tôi nhận được 33802181122903688
Hãy cho tôi biết vấn đề là gì? Có vấn đề nào giải quyết?
tại sao bạn lưu số nguyên 64 bit dưới dạng biến thể ở vị trí đầu tiên? – BrokenGlass
Thông thường bạn sẽ lưu trữ 'long' trong C# là' bigint' trong SQL Server. Có lý do cụ thể nào bạn đang cố lưu trữ 'long' như' varbinary' không? – rsbarro
Vì trường DB đó không chỉ chứa giá trị kiểu int64. – Maybe