コード例 #1
0
        protected override void VisitDateAddFunctionToken(DateAddFunctionToken token)
        {
            State.Write(Symbols.OpenParenthesis);
            VisitToken(token.Token);
            if (token.Subtract)
            {
                State.Write(Symbols.MinusVal);
            }
            else
            {
                State.Write(Symbols.PlusVal);
            }
            State.Write(Symbols.INTERVAL);

            VisitToken(token.Number);

            if (token.DatePart == DatePart.Millisecond)
            {
                State.Write(Symbols.DIV);
                State.Write(MySqlSymbols.milisecondInSecond);
            }

            switch (token.DatePart)
            {
            case DatePart.Day:
                State.Write(MySqlSymbols.DAY);
                break;

            case DatePart.Year:
                State.Write(MySqlSymbols.YEAR);
                break;

            case DatePart.Month:
                State.Write(MySqlSymbols.MONTH);
                break;

            case DatePart.Week:
                State.Write(MySqlSymbols.WEEK);
                break;

            case DatePart.Hour:
                State.Write(MySqlSymbols.HOUR);
                break;

            case DatePart.Minute:
                State.Write(MySqlSymbols.MINUTE);
                break;

            case DatePart.Second:
                State.Write(MySqlSymbols.SECOND);
                break;

            case DatePart.Millisecond:
                State.Write(MySqlSymbols.MICROSECOND);
                break;
            }
            State.Write(Symbols.CloseParenthesis);
        }
コード例 #2
0
        protected override void VisitDateAddFunctionToken(DateAddFunctionToken token)
        {
            State.Write(Symbols.DATEADD);
            State.Write(Symbols.OpenParenthesis);

            switch (token.DatePart)
            {
            case DatePart.Day:
                State.Write(PostgrSQLSymbols.d);
                break;

            case DatePart.Year:
                State.Write(PostgrSQLSymbols.yy);
                break;

            case DatePart.Month:
                State.Write(PostgrSQLSymbols.m);
                break;

            case DatePart.Week:
                State.Write(PostgrSQLSymbols.ww);
                break;

            case DatePart.Hour:
                State.Write(PostgrSQLSymbols.hh);
                break;

            case DatePart.Minute:
                State.Write(PostgrSQLSymbols.mi);
                break;

            case DatePart.Second:
                State.Write(PostgrSQLSymbols.ss);
                break;

            case DatePart.Millisecond:
                State.Write(PostgrSQLSymbols.ms);
                break;
            }
            State.Write(Symbols.Comma);
            VisitToken(token.Subtract ? new UnaryMinusToken {
                Token = token.Number
            } : token.Number);
            State.Write(Symbols.Comma);
            VisitToken(token.Token);
            State.Write(Symbols.CloseParenthesis);
        }
コード例 #3
0
        protected override void VisitDateAddFunctionToken(DateAddFunctionToken token)
        {
            string temp = string.Empty;

            VisitToken(token.Token);
            if (token.Subtract)
            {
                State.Write(Symbols.MinusVal);
            }
            else
            {
                State.Write(Symbols.PlusVal);
            }

            State.Write(Symbols.INTERVAL);
            State.Write(Symbols.SingleQuote);
            VisitToken((Scalar)token.Number);
            //VisitToken(Scalar)token.Number).Value);

            switch (token.DatePart)
            {
            case DatePart.Day: State.Write(PostgrSQLSymbols.d); break;

            case DatePart.Year: State.Write(PostgrSQLSymbols.yy); break;

            case DatePart.Month: State.Write(PostgrSQLSymbols.m); break;

            case DatePart.Week: State.Write(PostgrSQLSymbols.ww); break;

            case DatePart.Hour: State.Write(PostgrSQLSymbols.hh); break;

            case DatePart.Minute: State.Write(PostgrSQLSymbols.mi); break;

            case DatePart.Second: State.Write(PostgrSQLSymbols.ss); break;

            case DatePart.Millisecond: State.Write(PostgrSQLSymbols.ms); break;
            }
            State.Write(Symbols.SingleQuote);
        }
コード例 #4
0
 protected abstract void VisitDateAddFunctionToken(DateAddFunctionToken token);
コード例 #5
0
        protected override void VisitDateAddFunctionToken(DateAddFunctionToken token)
        {
            //,datetime(datetime('now'),CAST( CAST(-5 AS INTEGER) * 7 as TEXT)||' day')
            State.Write(SqliteSymbols.datetime);
            State.Write(Symbols.OpenParenthesis);

            State.Write(Symbols.CAST);
            State.Write(Symbols.OpenParenthesis);
            State.Write(Symbols.CAST);
            State.Write(Symbols.OpenParenthesis);
            VisitToken(token.Subtract ? new UnaryMinusToken {
                Token = token.Number
            } : token.Number);
            State.Write(Symbols.AS);
            State.Write(SqliteSymbols.INTEGER);
            State.Write(Symbols.CloseParenthesis);

            switch (token.DatePart)
            {
            case DatePart.Week:
                State.Write(" * 7");
                break;

            case DatePart.Millisecond:
                State.Write(" / 100.0");
                break;
            }
            State.Write(Symbols.AS);
            State.Write(SqliteSymbols.TEXT);
            State.Write(Symbols.CloseParenthesis);
            State.Write(SqliteSymbols.Concat);
            State.Write(Symbols.SingleQuote);
            State.Write(Symbols.Space);

            switch (token.DatePart)
            {
            case DatePart.Day:
            case DatePart.Week:
                State.Write(SqliteSymbols.days);
                break;

            case DatePart.Year:
                State.Write(SqliteSymbols.years);
                break;

            case DatePart.Month:
                State.Write(SqliteSymbols.months);
                break;

            case DatePart.Hour:
                State.Write(SqliteSymbols.hours);
                break;

            case DatePart.Minute:
                State.Write(SqliteSymbols.minutes);
                break;

            case DatePart.Second:
            case DatePart.Millisecond:
                State.Write(SqliteSymbols.seconds);
                break;
            }
            State.Write(Symbols.SingleQuote);
            State.Write(Symbols.CloseParenthesis);
        }