# in Ch.RowBinary
def encode(:datetime, %NaiveDateTime{} = naive) do
{seconds, _micros} = NaiveDateTime.to_gregorian_seconds(naive)
epoch_seconds = seconds - @epoch_gregorian_seconds
if epoch_seconds < 0 do
raise ArgumentError, "cannot encode #{naive} as DateTime since it's before Unix epoch"
end
<<epoch_seconds::32-little>>
end