Csharp/C#教程:为数据表中的计算列定义DateDiff分享


为数据表中的计算列定义DateDiff

我有DateTimeExpired列,我想创建另一个名为“Expired”的列,根据到期日期显示“Yes”或“No” – 如果日期已经过,则显示“Yes”。
我写了这个:

DataColumn colExpirationDate = new DataColumn("DateTimeExpired", typeof(DateTime)); DataColumn colExpired = new DataColumn("Expired", typeof(string), "IIF(DateDiff(DateTimeExpired, date())>= 0,'No','Yes')"); 

但我得到一个exception“该表达式包含未定义的函数调用DateDiff()。”

(请注意,我总是希望得到这一行,无论它是否已经过期)

如何将列的文本设置为正确的forms?

正如MA Hanin在评论中指出的那样,看起来DateDiff不能用于DataColumn表达式 。 您可以尝试将计算列构建到基础表中(如果您使用的是MS Sql或类似的)

编辑:没有“今天”的function,但假设您添加的DataColumn只存在几个小时,您可以在今天的日期中构建一个常量,然后使用比较运算符而不是DateDiff

试试这个:

 DataColumn colExpirationDate = new DataColumn("DateTimeExpired", typeof(DateTime)); DataColumn colExpired = new DataColumn("Expired", typeof(string), String.Format("IIF(DateTimeExpired > #{0}#,'No','Yes')", DateTime.Now.ToString("dd/MMM/yyyy"))); 

请注意,这仅适用于DataColumn仅在内存中保留不到一天的情况。

您所要做的就是使用Date.ToOADate将两个日期列转换为双精度数然后减去。

我使用ToOADate为每个日期列填充隐藏列。

上述就是C#学习教程:为数据表中的计算列定义DateDiff分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/991120.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐