mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-31 15:56:25 +08:00
Update QuestDb
This commit is contained in:
parent
97c84ab88b
commit
879e9dcfcb
@ -117,8 +117,8 @@ namespace SqlSugar
|
||||
new KeyValuePair<string, CSharpDataType>("bit varying",CSharpDataType.byteArray),
|
||||
new KeyValuePair<string, CSharpDataType>("varbit",CSharpDataType.@byte),
|
||||
new KeyValuePair<string, CSharpDataType>("time",CSharpDataType.TimeSpan),
|
||||
new KeyValuePair<string, CSharpDataType>("public.geometry",CSharpDataType.@object),
|
||||
new KeyValuePair<string, CSharpDataType>("inet",CSharpDataType.@object)
|
||||
//new KeyValuePair<string, CSharpDataType>("public.geometry",CSharpDataType.@object),
|
||||
new KeyValuePair<string, CSharpDataType>("geohash",CSharpDataType.@string)
|
||||
};
|
||||
public override List<string> StringThrow
|
||||
{
|
||||
|
@ -129,6 +129,14 @@ namespace SqlSugar
|
||||
sqlParameter.DbType = System.Data.DbType.Double;
|
||||
sqlParameter.Value = Convert.ToDouble(sqlParameter.Value);
|
||||
}
|
||||
else if (sqlParameter.DbType == System.Data.DbType.Guid)
|
||||
{
|
||||
sqlParameter.DbType = System.Data.DbType.Double;
|
||||
if (sqlParameter.Value != null)
|
||||
{
|
||||
sqlParameter.Value = (sqlParameter.Value).ToString();
|
||||
}
|
||||
}
|
||||
++index;
|
||||
}
|
||||
return result;
|
||||
|
@ -24,14 +24,14 @@ namespace SqlSugar
|
||||
{
|
||||
get
|
||||
{
|
||||
return "current_date";
|
||||
return "now()";
|
||||
}
|
||||
}
|
||||
public override string FullSqlDateNow
|
||||
{
|
||||
get
|
||||
{
|
||||
return "select current_date";
|
||||
return "select now()";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ namespace SqlSugar
|
||||
public SqlSugarProvider Context { get; set; }
|
||||
public QuestDBExpressionContext()
|
||||
{
|
||||
base.DbMehtods = new PostgreSQLMethod();
|
||||
base.DbMehtods = new QuestDBMethod();
|
||||
}
|
||||
public override string SqlTranslationLeft
|
||||
{
|
||||
@ -133,40 +133,61 @@ namespace SqlSugar
|
||||
}
|
||||
public class QuestDBMethod : DefaultDbMethod, IDbMethods
|
||||
{
|
||||
public override string TrueValue()
|
||||
//public override string DateIsSameByType(MethodCallExpressionModel model)
|
||||
//{
|
||||
// var parameter = model.Args[0];
|
||||
// var parameter2 = model.Args[1];
|
||||
// var parameter3 = model.Args[2];
|
||||
|
||||
// return string.Format(" (DATEDIFF('{2}',{0},{1})=0) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberValue);
|
||||
//}
|
||||
public override string Contains(MethodCallExpressionModel model)
|
||||
{
|
||||
return "true";
|
||||
}
|
||||
public override string FalseValue()
|
||||
{
|
||||
return "false";
|
||||
var parameter = model.Args[0];
|
||||
var parameter2 = model.Args[1];
|
||||
return string.Format(" ({0}~{1} ) ", parameter.MemberName, parameter2.MemberName);
|
||||
}
|
||||
public override string DateDiff(MethodCallExpressionModel model)
|
||||
{
|
||||
var parameter = (DateType)(Enum.Parse(typeof(DateType), model.Args[0].MemberValue.ObjToString()));
|
||||
var begin = model.Args[1].MemberName;
|
||||
var end = model.Args[2].MemberName;
|
||||
switch (parameter)
|
||||
{
|
||||
case DateType.Year:
|
||||
return $" ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) )";
|
||||
case DateType.Month:
|
||||
return $" ( ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) ) * 12 + (DATE_PART('month', {end}) - DATE_PART('month', {begin})) )";
|
||||
case DateType.Day:
|
||||
return $" ( DATE_PART('day', {end} - {begin}) )";
|
||||
case DateType.Hour:
|
||||
return $" ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) )";
|
||||
case DateType.Minute:
|
||||
return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) )";
|
||||
case DateType.Second:
|
||||
return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} )";
|
||||
case DateType.Millisecond:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
throw new Exception(parameter + " datediff no support");
|
||||
var parameter = model.Args[0];
|
||||
var parameter2 = model.Args[1];
|
||||
var parameter3 = model.Args[2];
|
||||
return string.Format(" DATEDIFF('{0}',{1},{2}) ", parameter.MemberValue.ObjToString().First(), parameter2.MemberName, parameter3.MemberName);
|
||||
}
|
||||
public override string TrueValue()
|
||||
{
|
||||
return "1";
|
||||
}
|
||||
public override string FalseValue()
|
||||
{
|
||||
return "0";
|
||||
}
|
||||
//public override string DateDiff(MethodCallExpressionModel model)
|
||||
//{
|
||||
// var parameter = (DateType)(Enum.Parse(typeof(DateType), model.Args[0].MemberValue.ObjToString()));
|
||||
// var begin = model.Args[1].MemberName;
|
||||
// var end = model.Args[2].MemberName;
|
||||
// switch (parameter)
|
||||
// {
|
||||
// case DateType.Year:
|
||||
// return $" ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) )";
|
||||
// case DateType.Month:
|
||||
// return $" ( ( DATE_PART('Year', {end} ) - DATE_PART('Year', {begin}) ) * 12 + (DATE_PART('month', {end}) - DATE_PART('month', {begin})) )";
|
||||
// case DateType.Day:
|
||||
// return $" ( DATE_PART('day', {end} - {begin}) )";
|
||||
// case DateType.Hour:
|
||||
// return $" ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) )";
|
||||
// case DateType.Minute:
|
||||
// return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) )";
|
||||
// case DateType.Second:
|
||||
// return $" ( ( ( DATE_PART('day', {end} - {begin}) ) * 24 + DATE_PART('hour', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} ) ) * 60 + DATE_PART('minute', {end} - {begin} )";
|
||||
// case DateType.Millisecond:
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
// throw new Exception(parameter + " datediff no support");
|
||||
//}
|
||||
public override string IIF(MethodCallExpressionModel model)
|
||||
{
|
||||
var parameter = model.Args[0];
|
||||
@ -184,49 +205,10 @@ namespace SqlSugar
|
||||
{
|
||||
var parameter = model.Args[0];
|
||||
var parameter2 = model.Args[1];
|
||||
var format = "dd";
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Year.ToString())
|
||||
{
|
||||
format = "yyyy";
|
||||
}
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Month.ToString())
|
||||
{
|
||||
format = "MM";
|
||||
}
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Day.ToString())
|
||||
{
|
||||
format = "dd";
|
||||
}
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Hour.ToString())
|
||||
{
|
||||
format = "hh";
|
||||
}
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Minute.ToString())
|
||||
{
|
||||
format = "mi";
|
||||
}
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Second.ToString())
|
||||
{
|
||||
format = "ss";
|
||||
}
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Millisecond.ToString())
|
||||
{
|
||||
format = "ms";
|
||||
}
|
||||
if (parameter2.MemberValue.ObjToString() == DateType.Weekday.ToString())
|
||||
{
|
||||
return $" extract(DOW FROM cast({parameter.MemberName} as TIMESTAMP)) ";
|
||||
}
|
||||
var format = parameter2.MemberValue.ObjToString();
|
||||
return string.Format(" {1}({0}) ) ", format, parameter.MemberName);
|
||||
}
|
||||
|
||||
return string.Format(" cast( to_char({1},'{0}')as integer ) ", format, parameter.MemberName);
|
||||
}
|
||||
|
||||
public override string Contains(MethodCallExpressionModel model)
|
||||
{
|
||||
var parameter = model.Args[0];
|
||||
var parameter2 = model.Args[1];
|
||||
return string.Format(" ({0} like concat('%',{1},'%')) ", parameter.MemberName, parameter2.MemberName );
|
||||
}
|
||||
|
||||
public override string StartsWith(MethodCallExpressionModel model)
|
||||
{
|
||||
@ -289,11 +271,16 @@ namespace SqlSugar
|
||||
}
|
||||
return string.Format(" ( to_char({0},'{2}')=to_char({1},'{2}') ) ", parameter.MemberName, parameter2.MemberName, format);
|
||||
}
|
||||
public override string ToDateShort(MethodCallExpressionModel model)
|
||||
{
|
||||
var parameter = model.Args[0];
|
||||
return string.Format("to_date (to_str({0}, 'yyyy-MM-dd'),'yyyy-MM-dd')", parameter.MemberName);
|
||||
}
|
||||
|
||||
public override string ToDate(MethodCallExpressionModel model)
|
||||
{
|
||||
var parameter = model.Args[0];
|
||||
return string.Format(" CAST({0} AS timestamp)", parameter.MemberName);
|
||||
return string.Format("CAST({0} AS DATE)", parameter.MemberName);
|
||||
}
|
||||
public override string DateAddByType(MethodCallExpressionModel model)
|
||||
{
|
||||
@ -369,11 +356,11 @@ namespace SqlSugar
|
||||
}
|
||||
public override string GetDate()
|
||||
{
|
||||
return "NOW()";
|
||||
return "now()";
|
||||
}
|
||||
public override string GetRandom()
|
||||
{
|
||||
return "RANDOM()";
|
||||
return "now()";
|
||||
}
|
||||
|
||||
public override string EqualTrue(string fieldName)
|
||||
|
@ -53,6 +53,10 @@ namespace SqlSugar
|
||||
}
|
||||
else if (Skip != null && Take != null)
|
||||
{
|
||||
if (Skip == 0 && Take == 1&&this.OrderByValue== "ORDER BY NOW() ")
|
||||
{
|
||||
this.OrderByValue = null;
|
||||
}
|
||||
if (this.OrderByValue == "ORDER BY ") this.OrderByValue += GetSelectValue.Split(',')[0];
|
||||
result = string.Format(PageTempalte, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, GetOrderByString, Skip.ObjToInt() > 0 ? Skip.ObjToInt() : 0, Take);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user