mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 优化 TypeHandlers 支持 DateTime 映射规则;#1634
This commit is contained in:
parent
1f3f60f6fa
commit
58f261b5e5
@ -612,9 +612,10 @@ namespace FreeSql
|
|||||||
{
|
{
|
||||||
if (e.Property.PropertyType == typeHandler.Type)
|
if (e.Property.PropertyType == typeHandler.Type)
|
||||||
{
|
{
|
||||||
if (_dicTypeHandlerTypes.ContainsKey(e.Property.PropertyType) == false &&
|
if (_dicTypeHandlerTypes.ContainsKey(e.Property.PropertyType)) return;
|
||||||
|
if (e.Property.PropertyType.NullableTypeOrThis() != typeof(DateTime) &&
|
||||||
FreeSql.Internal.Utils.dicExecuteArrayRowReadClassOrTuple.ContainsKey(e.Property.PropertyType))
|
FreeSql.Internal.Utils.dicExecuteArrayRowReadClassOrTuple.ContainsKey(e.Property.PropertyType))
|
||||||
return; //基础类型无效
|
return; //基础类型无效,DateTime 除外
|
||||||
|
|
||||||
if (_dicTypeHandlerTypes.TryAdd(e.Property.PropertyType, true))
|
if (_dicTypeHandlerTypes.TryAdd(e.Property.PropertyType, true))
|
||||||
{
|
{
|
||||||
|
@ -2447,6 +2447,14 @@ namespace FreeSql.Internal
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case "System.DateTime":
|
case "System.DateTime":
|
||||||
|
if (TypeHandlers.ContainsKey(type))
|
||||||
|
{
|
||||||
|
foreach (var switchFunc in GetDataReaderValueBlockExpressionSwitchTypeFullName)
|
||||||
|
{
|
||||||
|
var switchFuncRet = switchFunc(returnTarget, valueExp, type);
|
||||||
|
if (switchFuncRet != null) return switchFuncRet;
|
||||||
|
}
|
||||||
|
}
|
||||||
tryparseExp = Expression.Block(
|
tryparseExp = Expression.Block(
|
||||||
new[] { tryparseVarExp = Expression.Variable(typeof(DateTime)) },
|
new[] { tryparseVarExp = Expression.Variable(typeof(DateTime)) },
|
||||||
new Expression[] {
|
new Expression[] {
|
||||||
|
@ -57,8 +57,18 @@ namespace FreeSql.ClickHouse
|
|||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\"), "'"); //((Enum)val).ToInt64();
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\"), "'"); //((Enum)val).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -51,6 +51,9 @@ namespace FreeSql.Custom
|
|||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (value.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
if (value.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
||||||
|
|
||||||
|
if (value is DateTime && Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(value)?.ToString();
|
||||||
|
if (value is DateTime? && Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler2)) return typeHandler2.Serialize(value)?.ToString();
|
||||||
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
}
|
}
|
||||||
public virtual string TimeSpanRawSql(object value) => value == null ? "NULL" : ((TimeSpan)value).TotalSeconds.ToString();
|
public virtual string TimeSpanRawSql(object value) => value == null ? "NULL" : ((TimeSpan)value).TotalSeconds.ToString();
|
||||||
|
@ -42,8 +42,18 @@ namespace FreeSql.Custom.MySql
|
|||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -56,8 +56,18 @@ namespace FreeSql.Custom.Oracle
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
||||||
else if (param is IEnumerable)
|
else if (param is IEnumerable)
|
||||||
|
@ -51,6 +51,9 @@ namespace FreeSql.Custom
|
|||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (value.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
if (value.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
||||||
|
|
||||||
|
if (value is DateTime && Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(value)?.ToString();
|
||||||
|
if (value is DateTime? && Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler2)) return typeHandler2.Serialize(value)?.ToString();
|
||||||
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
}
|
}
|
||||||
public virtual string TimeSpanRawSql(object value) => value == null ? "NULL" : ((TimeSpan)value).TotalSeconds.ToString();
|
public virtual string TimeSpanRawSql(object value) => value == null ? "NULL" : ((TimeSpan)value).TotalSeconds.ToString();
|
||||||
|
@ -44,8 +44,18 @@ namespace FreeSql.Custom.PostgreSQL
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -49,11 +49,18 @@ namespace FreeSql.Custom.SqlServer
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
{
|
{
|
||||||
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
}
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is DateTimeOffset || param is DateTimeOffset?)
|
else if (param is DateTimeOffset || param is DateTimeOffset?)
|
||||||
{
|
{
|
||||||
if (param.Equals(DateTimeOffset.MinValue) == true) param = new DateTimeOffset(new DateTime(1970, 1, 1), TimeSpan.Zero);
|
if (param.Equals(DateTimeOffset.MinValue) == true) param = new DateTimeOffset(new DateTime(1970, 1, 1), TimeSpan.Zero);
|
||||||
|
@ -58,8 +58,18 @@ namespace FreeSql.Dameng
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
||||||
else if (param is IEnumerable)
|
else if (param is IEnumerable)
|
||||||
|
@ -79,8 +79,18 @@ namespace FreeSql.Firebird
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("timestamp '", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
return string.Concat("timestamp '", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("timestamp '", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -57,12 +57,22 @@ namespace FreeSql.GBase
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
{
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
if (mapColumn?.DbPrecision > 0)
|
if (mapColumn?.DbPrecision > 0)
|
||||||
return string.Concat("'", ((DateTime)param).ToString($"yyyy-MM-dd HH:mm:ss.{"f".PadRight(mapColumn.DbPrecision, 'f')}"), "'");
|
return string.Concat("'", ((DateTime)param).ToString($"yyyy-MM-dd HH:mm:ss.{"f".PadRight(mapColumn.DbPrecision, 'f')}"), "'");
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
}
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
if (mapColumn?.DbPrecision > 0)
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString($"yyyy-MM-dd HH:mm:ss.{"f".PadRight(mapColumn.DbPrecision, 'f')}"), "'");
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
{
|
{
|
||||||
var ts = (TimeSpan)param;
|
var ts = (TimeSpan)param;
|
||||||
|
@ -100,8 +100,16 @@ namespace FreeSql.GBase
|
|||||||
var ts = (TimeSpan)value;
|
var ts = (TimeSpan)value;
|
||||||
return $"interval({ts.Days} {ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds}) day(9) to fraction";
|
return $"interval({ts.Days} {ts.Hours}:{ts.Minutes}:{ts.Seconds}.{ts.Milliseconds}) day(9) to fraction";
|
||||||
}
|
}
|
||||||
if (type == typeof(DateTime) || type == typeof(DateTime?))
|
if (type == typeof(DateTime))
|
||||||
{
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(value)?.ToString();
|
||||||
|
if (col?.DbPrecision > 0)
|
||||||
|
return string.Concat("'", ((DateTime)value).ToString($"yyyy-MM-dd HH:mm:ss.{"f".PadRight(col.DbPrecision, 'f')}"), "'");
|
||||||
|
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
}
|
||||||
|
if (type == typeof(DateTime?))
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(value)?.ToString();
|
||||||
if (col?.DbPrecision > 0)
|
if (col?.DbPrecision > 0)
|
||||||
return string.Concat("'", ((DateTime)value).ToString($"yyyy-MM-dd HH:mm:ss.{"f".PadRight(col.DbPrecision, 'f')}"), "'");
|
return string.Concat("'", ((DateTime)value).ToString($"yyyy-MM-dd HH:mm:ss.{"f".PadRight(col.DbPrecision, 'f')}"), "'");
|
||||||
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
@ -56,8 +56,18 @@ namespace FreeSql.KingbaseES
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -57,11 +57,20 @@ namespace FreeSql.MsAccess
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
{
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
}
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).TotalSeconds;
|
return ((TimeSpan)param).TotalSeconds;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -61,8 +61,18 @@ namespace FreeSql.MySql
|
|||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -59,8 +59,18 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
||||||
else if (param is IEnumerable)
|
else if (param is IEnumerable)
|
||||||
|
@ -51,6 +51,9 @@ namespace FreeSql.Odbc.Default
|
|||||||
{
|
{
|
||||||
if (value == null) return "NULL";
|
if (value == null) return "NULL";
|
||||||
if (value.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
if (value.Equals(DateTime.MinValue) == true) value = new DateTime(1970, 1, 1);
|
||||||
|
|
||||||
|
if (value is DateTime && Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(value)?.ToString();
|
||||||
|
if (value is DateTime? && Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler2)) return typeHandler2.Serialize(value)?.ToString();
|
||||||
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)value).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
}
|
}
|
||||||
public virtual string TimeSpanRawSql(object value) => value == null ? "NULL" : ((TimeSpan)value).TotalSeconds.ToString();
|
public virtual string TimeSpanRawSql(object value) => value == null ? "NULL" : ((TimeSpan)value).TotalSeconds.ToString();
|
||||||
|
@ -59,8 +59,18 @@ namespace FreeSql.Odbc.KingbaseES
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -59,8 +59,18 @@ namespace FreeSql.Odbc.MySql
|
|||||||
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
return string.Concat("'", param.ToString().Replace("'", "''").Replace("\\", "\\\\").Replace(", ", ","), "'"); //((Enum)val).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -60,8 +60,18 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
||||||
else if (param is IEnumerable)
|
else if (param is IEnumerable)
|
||||||
|
@ -60,8 +60,18 @@ namespace FreeSql.Odbc.PostgreSQL
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -64,11 +64,20 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
{
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
}
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is DateTimeOffset || param is DateTimeOffset?)
|
else if (param is DateTimeOffset || param is DateTimeOffset?)
|
||||||
{
|
{
|
||||||
if (param.Equals(DateTimeOffset.MinValue) == true) param = new DateTimeOffset(new DateTime(1970, 1, 1), TimeSpan.Zero);
|
if (param.Equals(DateTimeOffset.MinValue) == true) param = new DateTimeOffset(new DateTime(1970, 1, 1), TimeSpan.Zero);
|
||||||
|
@ -57,8 +57,18 @@ namespace FreeSql.Oracle
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("to_timestamp('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "','YYYY-MM-DD HH24:MI:SS.FF6')");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
return $"numtodsinterval({((TimeSpan)param).Ticks * 1.0 / 10000000},'second')";
|
||||||
else if (param is IEnumerable)
|
else if (param is IEnumerable)
|
||||||
|
@ -61,8 +61,18 @@ namespace FreeSql.PostgreSQL
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -63,8 +63,18 @@ namespace FreeSql.QuestDb
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return (long)((TimeSpan)param).TotalSeconds;
|
return (long)((TimeSpan)param).TotalSeconds;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -57,8 +57,18 @@ namespace FreeSql.ShenTong
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).TotalSeconds;
|
return ((TimeSpan)param).TotalSeconds;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -68,11 +68,20 @@ namespace FreeSql.SqlServer
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
{
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
}
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.fff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is DateTimeOffset || param is DateTimeOffset?)
|
else if (param is DateTimeOffset || param is DateTimeOffset?)
|
||||||
{
|
{
|
||||||
if (param.Equals(DateTimeOffset.MinValue) == true) param = new DateTimeOffset(new DateTime(1970, 1, 1), TimeSpan.Zero);
|
if (param.Equals(DateTimeOffset.MinValue) == true) param = new DateTimeOffset(new DateTime(1970, 1, 1), TimeSpan.Zero);
|
||||||
|
@ -62,8 +62,18 @@ namespace FreeSql.Sqlite
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).TotalSeconds;
|
return ((TimeSpan)param).TotalSeconds;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
@ -59,8 +59,18 @@ namespace FreeSql.Xugu
|
|||||||
return ((Enum)param).ToInt64();
|
return ((Enum)param).ToInt64();
|
||||||
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
else if (decimal.TryParse(string.Concat(param), out var trydec))
|
||||||
return param;
|
return param;
|
||||||
else if (param is DateTime || param is DateTime?)
|
|
||||||
|
else if (param is DateTime)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
else if (param is DateTime?)
|
||||||
|
{
|
||||||
|
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
|
||||||
|
return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
|
||||||
|
}
|
||||||
|
|
||||||
else if (param is TimeSpan || param is TimeSpan?)
|
else if (param is TimeSpan || param is TimeSpan?)
|
||||||
return ((TimeSpan)param).Ticks / 10;
|
return ((TimeSpan)param).Ticks / 10;
|
||||||
else if (param is byte[])
|
else if (param is byte[])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user