示例#1
0
文件: Impl.cs 项目: WVitek/DotGlue
        const string sAtTime  = ":AT_TIME";  // time of slice

        static Expr Cond_TimeIntervalHalfOpen(QueryTimeInfo startTime, string sATime, string sBTime)
        {   // sATime<startTime AND startTime<=sBTime
            var cond = BinaryExpr.Create(ExprType.LogicalAnd,
                                         new BinaryExpr(ExprType.LessThan, startTime.Time2Value(sATime), startTime.valueExpr),
                                         new BinaryExpr(ExprType.LessThanOrEqual, startTime.valueExpr, startTime.Time2Value(sBTime)));

            return(cond);
        }
示例#2
0
文件: Impl.cs 项目: WVitek/DotGlue
        static Expr Cond_TimeSlice(QueryTimeInfo startTime, string sMinTime, string sAtTime)
        {   // sMinTime<=startTime AND startTime<=sAtTime
            var cond = new BinaryExpr(ExprType.LogicalAnd,
                                      new BinaryExpr(ExprType.LessThanOrEqual, startTime.Time2Value(sMinTime), startTime.valueExpr),
                                      new BinaryExpr(ExprType.LessThanOrEqual, startTime.valueExpr, startTime.Time2Value(sAtTime))
                                      );

            return(cond);
        }
示例#3
0
文件: Impl.cs 项目: WVitek/DotGlue
        static Expr Cond_TimeSlice(QueryTimeInfo startTime, QueryTimeInfo endTime, string sMinTime)
        {   // sMinTime<=startTime AND startTime<=sAtTime AND (endTime is null OR sAtTime<=endTime)
            var cond_min = new BinaryExpr(ExprType.LessThanOrEqual, startTime.Time2Value(sMinTime), startTime.valueExpr);
            var cond_0   = new BinaryExpr(ExprType.LessThanOrEqual, startTime.valueExpr, startTime.Time2Value(sAtTime));
            var cond_1   = new BinaryExpr(ExprType.LogicalOr,
                                          new SequenceExpr(endTime.valueExpr, new ReferenceExpr("IS NULL")),
                                          new BinaryExpr(ExprType.LessThan, endTime.Time2Value(sAtTime), endTime.valueExpr)
                                          );
            var cond = BinaryExpr.Create(ExprType.LogicalAnd, cond_min, cond_0, cond_1);

            return(cond);
        }