Eu o armazenaria no banco de dados como um
BIGINT
e eu armazenaria o número de ticks (por exemplo, propriedade TimeSpan.Ticks). Dessa forma, se eu quisesse obter um objeto TimeSpan quando eu recuperá-lo, eu poderia simplesmente fazer TimeSpan.FromTicks(value), o que seria fácil.