我正试图通过DataTable.Compute
计算字符串表达式。
下面这样的简单字符串正在工作:
static void Compare()
{
var logicalExpression = "'2022-09-14' <= '2029-12-31'";
DataTable dt = new DataTable();
var result = (bool)dt.Compute(logicalExpression, "");
}
但是,日期2022-09-14
是动态的,它应该是目前的日期。
我试着用Now()
、GETDATE()
替换'2022-09-14'
。它们都不起作用。
Compute
中是否有获取当前日期时间的功能?
您可以这样做:
var logicalExpression = "'" + DateTime.Now.ToShortDateString() + "' <= '2029-12-31'";
您也可以指定您想要的日期格式,请参阅本文中的示例。
var logicalExpression = $"#{DateTime.Now:MM/dd/yyyy}# <= #12/31/2029#";
在这种情况下,这是表示日期的正确方式。请参阅此处了解更多信息。