public void Visit(DateTimeLiteral op) { if (_version.OnlySupportsV2OrV3()) { WriteEncoded("datetime'"); WriteEncoded(_context.AsZonedDateTime(op.Value).Value.ZoneDateTime.ToString("s")); WriteEncoded("'"); } else { if (op.Value.TimeOfDay.Equals(TimeSpan.Zero)) { WriteEncoded(_context.AsZonedDateTime(op.Value).Value.ZoneDateTime.ToString("yyyy-MM-dd")); } else if (SupportsUtcDates) { WriteEncoded(_context.AsZonedDateTime(op.Value).Value.UtcDateTime.ToString("s") + "Z"); } else { WriteEncoded(_context.AsZonedDateTime(op.Value).Value.ZoneDateTime.ToString("s")); } } }