public static void Main()
var createdNow = DateTimeOffset.Now;
var createdTwoDaysAgo = DateTimeOffset.Now.Subtract(TimeSpan.FromDays(2));
Console.WriteLine("Just created");
Console.WriteLine(CombGuid.NewSqlServerGuid(createdNow));
Console.WriteLine("Created two days ago");
Console.WriteLine(CombGuid.NewSqlServerGuid(createdTwoDaysAgo));
public static class CombGuid
public static Guid NewSqlServerGuid(DateTimeOffset date)
byte[] guidBytes = Guid.NewGuid().ToByteArray();
long timestamp = date.UtcTicks / 10000L;
byte[] timestampBytes = BitConverter.GetBytes(timestamp);
if (BitConverter.IsLittleEndian)
Array.Reverse(timestampBytes);
Buffer.BlockCopy(timestampBytes, 2, guidBytes, 10, 6);
return new Guid(guidBytes);