解决ClickHouse 批量更新DateTime问题

This commit is contained in:
Daily
2024-05-30 11:27:49 +08:00
parent 54e1ed6fdb
commit 9aef33e3df
3 changed files with 41 additions and 20 deletions

View File

@ -7,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using DateTime = System.DateTime;
namespace FreeSql.ClickHouse.Curd
{
@ -167,6 +168,16 @@ namespace FreeSql.ClickHouse.Curd
var colsql = _noneParameter ? _commonUtils.GetNoneParamaterSqlValue(_paramsSource, "u", col, col.Attribute.MapType, val) :
_commonUtils.QuoteWriteParamterAdapter(col.Attribute.MapType, _commonUtils.QuoteParamterName($"p_{_paramsSource.Count}"));
//判断是否是DateTime类型如果是DateTime类型需要转换成ClickHouse支持的时间格式
if (col.Attribute.MapType == typeof(DateTime) || col.Attribute.MapType == typeof(DateTime?) )
{
//获取当前实时区
var timeZone = TimeZoneInfo.Local;
colsql = $"toDateTime({colsql},'Asia/Shanghai')";
}
cwsb.Append(_commonUtils.RewriteColumn(col, colsql));
if (_noneParameter == false)
_commonUtils.AppendParamter(_paramsSource, null, col, col.Attribute.MapType, val);