c# - 检查 DateTime 是否有时间
问题描述
假设我有一个数据库列“A”。DB 中的列类型可以是 Date 或 DateTime。我正在创建一个动态过滤器查询:
filterFragment = Expression.AndAlso(
Expression.GreaterThanOrEqual(memberExpression, Expression.Constant(beginDate)),
Expression.LessThan(memberExpression, Expression.Constant(endDate.AddSeconds(1))));
在哪里,
memberExpression = Expression.Property(rootExpression, property);
rootExpression = Expression.Parameter(targetType, targetType.Name);
queryableSource = source.AsQueryable();
results = queryableSource.Expression;
targetType = queryableSource.ElementType;
和
IEnumerable<TSource> source is a parameter to the method generating the dynamic filterExpression.
这是类型值:
如何检查 memberExpression 的类型是否有时间部分或者它是没有任何时间部分的 ShortDate?我想检查 memberExpression 类型的原因是,如果它有时间部分,我需要做 endDate.AddSecond(1),如果没有时间部分需要在 Expression 中使用 LessThanOrEqual:
filterFragment = Expression.AndAlso(
Expression.GreaterThanOrEqual(memberExpression, Expression.Constant(beginDate)),
Expression.LessThanOrEqual(memberExpression, Expression.Constant(endDate)));
问题的更多细节在这里。