当我被问及是否可以在工作中找到解决问题的简单解决方案时,我有点头疼。
这是目前的情况:
而且,问题是,如何在数据库记录中找到最接近今天的那一天? 我一直坐在这里试图通过一些“智能”SQL查询来解决它,但我只是不知道如何绕过它。
我在想enum:s,但我不确定这是否有效,如果有,那怎么样?我对c#很新 因此可能是一个愚蠢的问题。
非常感谢任何帮助。 :)
答案 0 :(得分:1)
执行此操作的最佳方法是在DateTime
的{{1}}值(属性DayOfWeek
类型为DayOfWeek
)和输出之间进行比较SQL Server的enum DayOfWeek
函数。
例如,如果您想获得昨天的所有任务,可以在C#中执行此操作:
DATEPART
然后将该值传递给执行此操作的SQL语句:
int yesterday = ((int)(DateTime.Now.DayOfWeek))-1;
SELECT * FROM <table> WHERE DATEPART(weekday, <column_name>) = (@yesterday+1)
部分是因为C#的枚举使用0-6,而SQL Server使用1-7(两者都使用星期日作为第一个索引)。