// totaloffsetminutes(StartTime) eq 60 // timestamp only protected override string StringifyTotaloffsetminutes(UnaryFuncSegment segment) { string format = @" DECODE( SIGN(TO_CHAR({0},'TZH')), -1, TO_NUMBER(TO_CHAR({0},'TZH')) * 60 - TO_NUMBER(TO_CHAR({0},'TZM')), TO_NUMBER(TO_CHAR({0},'TZH')) * 60 + TO_NUMBER(TO_CHAR({0},'TZM')))"; return(string.Format(format, ToSqlString(segment.Operand))); }
// ceiling(Freight) eq 33 protected override string StringifyCeiling(UnaryFuncSegment segment) { return(string.Format("CEILING({0})", ToSqlString(segment.Operand))); }
// floor(Freight) eq 32 protected override string StringifyFloor(UnaryFuncSegment segment) { return(string.Format("FLOOR({0})", ToSqlString(segment.Operand))); }
// round(Freight) eq 32 protected override string StringifyRound(UnaryFuncSegment segment) { return(string.Format("ROUND({0}, 0)", ToSqlString(segment.Operand))); }
protected override string StringifyTotaloffsetminutes(UnaryFuncSegment segment) { throw new NotSupportedException(segment.Func); }
// time(StartTime) le StartOfDay protected override string StringifyTime(UnaryFuncSegment segment) { return(string.Format("CONVERT(time, {0})", ToSqlString(segment.Operand))); }
// totaloffsetminutes(StartTime) eq 60 // datetimeoffset(7) only protected override string StringifyTotaloffsetminutes(UnaryFuncSegment segment) { // "DATEPART(TZOFFSET, SYSDATETIMEOFFSET())" return(string.Format("DATEPART(TZOFFSET, {0})", ToSqlString(segment.Operand))); }
// second(StartTime) eq 0 protected override string StringifySecond(UnaryFuncSegment segment) { return(string.Format("DATEPART(SECOND, {0})", ToSqlString(segment.Operand))); }
// time(StartTime) le StartOfDay protected override string StringifyTime(UnaryFuncSegment segment) { return(string.Format("TO_DATE('0001-01-01 '|| TO_CHAR({0},'HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS')", ToSqlString(segment.Operand))); }
// date(StartTime) ne date(EndTime) protected override string StringifyDate(UnaryFuncSegment segment) { return(string.Format("TO_DATE(TO_CHAR({0}, 'YYYY-MM-DD'),'YYYY-MM-DD')", ToSqlString(segment.Operand))); }
// totaloffsetminutes(StartTime) eq 60 // SELECT TO_NUMBER(TO_CHAR(SYSDATE,'FF9')) FROM DUAL; ORA-01821: "date format not recognized" // SELECT TO_NUMBER(TO_CHAR(CURRENT_TIMESTAMP,'FF9')) FROM DUAL; OK protected override string StringifyFractionalseconds(UnaryFuncSegment segment) { return(string.Format("TO_NUMBER(TO_CHAR({0},'FF9'))", ToSqlString(segment.Operand))); }
// second(StartTime) eq 0 protected override string StringifySecond(UnaryFuncSegment segment) { return(string.Format("TO_NUMBER(TO_CHAR({0},'SS'))", ToSqlString(segment.Operand))); }
// time(StartTime) le StartOfDay protected override string StringifyTime(UnaryFuncSegment segment) { return(string.Format("maketime(hour({0}), minute({0}), second({0}))", ToSqlString(segment.Operand))); }
// date(StartTime) ne date(EndTime) protected override string StringifyDate(UnaryFuncSegment segment) { return(string.Format("str_to_date(date_format({0}, '%Y-%m-%d'), '%Y-%m-%d')", ToSqlString(segment.Operand))); }
// hour(StartTime) eq 1 protected override string StringifyHour(UnaryFuncSegment segment) { return(string.Format("DATEPART(HOUR, {0})", ToSqlString(segment.Operand))); }
// minute(StartTime) eq 0 protected override string StringifyMinute(UnaryFuncSegment segment) { return(string.Format("DATEPART(MINUTE, {0})", ToSqlString(segment.Operand))); }
// length(CompanyName) eq 19 protected override string StringifyLength(UnaryFuncSegment segment) { return(string.Format("LEN({0})", ToSqlString(segment.Operand))); }
// fractionalseconds(StartTime) eq 0 protected override string StringifyFractionalseconds(UnaryFuncSegment segment) { return(string.Format("DATEPART(MILLISECOND, {0})", ToSqlString(segment.Operand))); }
// toupper(CompanyName) eq 'ALFREDS FUTTERKISTE' protected override string StringifyToupper(UnaryFuncSegment segment) { return(string.Format("UPPER({0})", ToSqlString(segment.Operand))); }
// date(StartTime) ne date(EndTime) protected override string StringifyDate(UnaryFuncSegment segment) { // "CONVERT(datetime, CONVERT(char(10), {0}, 120))" return(string.Format("CONVERT(date, {0})", ToSqlString(segment.Operand))); }
// trim(CompanyName) eq 'Alfreds Futterkiste' protected override string StringifyTrim(UnaryFuncSegment segment) { return(string.Format("LTRIM(RTRIM({0}))", ToSqlString(segment.Operand))); }
protected override string StringifyGeoLength(UnaryFuncSegment segment) { throw new NotSupportedException(segment.Func); }
// fractionalseconds(StartTime) eq 0 protected override string StringifyFractionalseconds(UnaryFuncSegment segment) { return("date_format({0}, '%f') + 0"); }