提问人:Edward 提问时间:9/14/2022 更新时间:9/14/2022 访问量:312
如何在 DataTable.Compute 中获取当前日期
How to get the current date in DataTable.Compute
问:
我正在尝试通过 计算字符串表达式。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
我试图用 ,替换。它们都不起作用。'2022-09-14'
Now()
GETDATE()
有什么功能可以获取当前日期时间吗?Compute
答:
0赞
Dmyto Holota
9/14/2022
#1
你可以像这样做:
var logicalExpression = "'" + DateTime.Now.ToShortDateString() + "' <= '2029-12-31'";
您还可以指定日期的格式,请参阅此帖子以获取示例。
评论
0赞
John
9/14/2022
您无法选择格式,除非“yyyy-MM-dd”是本地计算机的默认格式,否则此代码将不起作用。您需要对“yyyy-MM-dd”进行硬编码,然后进行文本比较,或者对“MM/dd/yyyy”进行硬编码并进行适当的日期比较。任何其他格式都不起作用。
0赞
Edward
9/15/2022
对于,它在 C# 编译器文件中,我需要使用字符串格式的函数,可以直接计算。DateTime.Now
Compute
0赞
John
9/14/2022
#2
var logicalExpression = $"#{DateTime.Now:MM/dd/yyyy}# <= #12/31/2029#";
这是在此上下文中表示日期的正确方法。有关详细信息,请参阅此处。
评论
0赞
Edward
9/15/2022
对于,它在 C# 编译器文件中,我需要使用字符串格式的函数,可以直接计算。DateTime.Now
Compute
0赞
John
9/15/2022
@Edward,不,你不知道。 要求你把它作为参数传递。可以以您喜欢的任何方式构建。完全按照我所演示的方式执行将产生完全相同的结果,就像您在 中使用 中的函数一样。当然,反正没有这样的功能,如果你费心阅读文档,你就会知道,所以你别无选择,只能按照我展示的方式去做。这可能是一个问题的唯一原因是,如果您想创建一次,然后在不同时间多次使用它。只是不要那样做。Compute
string
string
string
string
评论