public AstDatePartExpression( AstDatePart part, AstExpression date, AstExpression timezone = null) { _part = part; _date = Ensure.IsNotNull(date, nameof(date)); _timezone = timezone; }
public static string Render(this AstDatePart part) { return(part switch { AstDatePart.DayOfMonth => "$dayOfMonth", AstDatePart.DayOfWeek => "$dayOfWeek", AstDatePart.DayOfYear => "$dayOfYear", AstDatePart.Hour => "$hour", AstDatePart.IsoDayOfWeek => "$isoDayOfWeek", AstDatePart.IsoWeek => "$isoWeek", AstDatePart.IsoWeekYear => "$isoWeekYear", AstDatePart.Millisecond => "$millisecond", AstDatePart.Minute => "$minute", AstDatePart.Month => "$month", AstDatePart.Second => "$second", AstDatePart.Week => "$week", AstDatePart.Year => "$year", _ => throw new InvalidOperationException($"Unexpected date part: {part}.") });