Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DataSet.Select()方法的筛选器表达式中使用getdate()_C#_Sql_Dataset - Fatal编程技术网

C# 在DataSet.Select()方法的筛选器表达式中使用getdate()

C# 在DataSet.Select()方法的筛选器表达式中使用getdate(),c#,sql,dataset,C#,Sql,Dataset,我想知道在过滤器表达式中使用SQL函数(在本例中为getdate())的可能性,如下所述: DataTable dataTable = new DataTable(); dataTable.Columns.Add("MyDate", typeof(DateTime)); dataTable.Columns.Add("MyString", typeof(string)); var row = dataT

我想知道在过滤器表达式中使用SQL函数(在本例中为getdate())的可能性,如下所述:

            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("MyDate", typeof(DateTime));
            dataTable.Columns.Add("MyString", typeof(string));
            var row = dataTable.NewRow();
            row[0] = DateTime.Now.AddDays(1);
            row[1] = "XXX";

            dataTable.Rows.Add(row);

            //Evaluation

            //Example 1 - IT WORKS
            //var rows = dataTable.Select("([MyString] = 'XXX') And [MyDate] > #2012/03/03#"); 

            //Example 2 - IT DOESN'T WORK
            var rows = dataTable.Select("([MyString] = 'XXX') And [MyDate] >= (GETDATE())");
有人知道这是否可能吗? 由于某些原因,我无法更改仅计算字符串的原始代码,我需要获取当前日期并在该日期上再添加两天。类似于
DATEADD(第2天,[MyDate])

我知道一种方法是更改源代码并创建一个带有日期的文本字符串,如示例2所示


感谢您的帮助。谢谢

您可以查看此链接以检查是否支持类似的功能:

我做了一个快速检查,日期函数似乎不受支持。 我是如何发现这种联系的?我刚刚在谷歌上搜索了您正在使用的api,并首先访问了此链接:

单击带有一个字符串的选择版本,并进入

然后我开始阅读。 我之所以传递这些信息,是因为我认为浏览互联网上已有的内容,知道要查找什么以及如何查找与编程本身一样重要


当然,在您的情况下,您可以使用DateTime.today获取当前日期,并创建一个使用该结果的选择字符串。不要将DateTime.today作为字符串放入select中,这也不会起作用。

您可以将
DateTime串联起来。现在
到您的筛选器中:

var filter = string.Format("[MyString] = 'XXX' And [MyDate] >= #{0:yyyy-MM-dd}#", DateTime.Now);
var rows = dataTable.Select(filter);
如果需要超过两天,则可以将
DateTime.Now
更改为
DateTime.Now.AddDays(2).Date