Using NodaTime, and I'm looking to deconstruct a ZonedDateTime in order to save it to a SQL database. It seems to me there are a few options. I could deconstruct it to Instant and DateTimeZone and save it as a datetime2 and nvarchar(50). I could deconstruct it to DateTimeOffset and DateTimeZone or LocalDateTime and DateTimeZone and, in either case, save it as datetimeoffset and nvarchar(5).
Is there a difference, or reason to chose one over the other?
The only think I can think of is that the datetimeoffset plus nvarchar(50) might be better in case the db is ever read by a service that doesn't have as robust a timezone -> offset conversion system as NodaTime. In that situation I've at least capture what the offset was, in that timezone, at that point in time, which is lost (or at needs to be recalculated from historical timezone information) with a datetime2 plus nvarchar(50) approach.
Are there other considerations I'm missing?