Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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# 选择最大日期和之前的日期_C#_Datetime_Maxdate - Fatal编程技术网

C# 选择最大日期和之前的日期

C# 选择最大日期和之前的日期,c#,datetime,maxdate,C#,Datetime,Maxdate,我有一个数据表,除周六和周日外,每天都会更新。 问题在于,当我使用max-date和max-date-1检索数据时 但当我试图检索今天星期一和昨天星期天的数据时,它失败了,因为max date-1不存在 数据可以在周六和周日更新,但因为是汇率,我会更新。 周五、周六和周日的汇率是否相同 这是用这种方法解决问题的一种方法,但还有更好的方法 string weekend = DateTime.Now.DayOfWeek.ToString(); if (weekend == "Monday") { s

我有一个数据表,除周六和周日外,每天都会更新。 问题在于,当我使用max-date和max-date-1检索数据时

但当我试图检索今天星期一和昨天星期天的数据时,它失败了,因为max date-1不存在

数据可以在周六和周日更新,但因为是汇率,我会更新。 周五、周六和周日的汇率是否相同

这是用这种方法解决问题的一种方法,但还有更好的方法

string weekend = DateTime.Now.DayOfWeek.ToString();
if (weekend == "Monday")
{
select ***** where max(date)-3 from *****
}

您可以选择至少有一天历史的最新记录。那么周末就不是特例了。

你实际上是在寻找数据集中第二高的日期

查找数据中的最高日期。找到小于此值的值,将结果限制为1,则数据集中有前一天


任何其他方法都会在未更新费率的其他日期失败,例如圣诞节。

以下是一些其他选项,这些选项也适用于任意的目标日期

如果每个日期只有一条记录

SELECT * FROM table WHERE date<=target_date ORDER BY date DESC LIMIT 2
如果每个日期都有许多记录

SELECT * FROM table WHERE date IN (SELECT DISTINCT date FROM table WHERE date<=target_date ORDER BY date DESC LIMIT 2)

当然,您也可以使用数据库的日期/时间函数来检查星期一。

hmm您可能需要有关字符串的更多详细信息

sql字符串是

选择m.Navn、m.Beskrivelse、p_-idag.Points作为点,p_-igar.Points作为点,p_-igar作为点,m.LEFT JOIN选择*从Datoen='06-09-2010'的点作为点,m.Navn=p_-idag.Navn左连接选择*从Datoen='06-08-2010'的点作为点,m.Navn=p_-igar.Navn按m.Navn顺序


第一个日期由用户选择,下一个日期-1天或-3

对我来说,一个简单的方法是:

从表格中选择*其中日期=从表格中选择maxdate 其中日期<从表中选择maxdate


不确定它的效率有多高

@Sigenstroem-但请选择TOP x。。。正如黑暗猎鹰所建议的那样。是的,它是有效的,这也是我用来让它工作的方法。谢谢你的回答。!