【发布时间】:2019-08-05 22:54:29
【问题描述】:
在我的餐厅 POS 软件应用程序中,餐厅老板可以使用一个表格来获取他/她的销售的每日、每周、每月和自定义报告,以及该期间的总收入时间和售出物品的数量。现在对于日报和自定义报告,我没有问题,但是对于周报和月报,我不知道如何获取当周或当月的已售商品报告。我在谷歌上搜索了很多,但我找不到我的问题的解决方案。
例如,今天是星期一,一周的第一天。我卖了 30 个汉堡和一些比萨饼。三天后,我想查看本周的销售报告,即从星期一开始。我的应用程序为我提供了从上周的同一天到当天的报告。这是我用于每周报告的代码。
Connection.Open();
OleDbCommand Cmnd = new OleDbCommand("SELECT SomeFields FROM Table WHERE [Date] between @Date2 and @Date1",Connection);
Cmnd.Parameters.Add("@Date2", DateTime.Now.AddDays(-7).ToShortDateString());
Cmnd.Parameters.Add("@Date1", DateTime.Now.ToShortDateString());
OleDbDataAdapter GetList = new OleDbDataAdapter(Cmnd);
DataTable DataT = new DataTable();
GetList.Fill(DataT);
Datagridview.DataSource = DataT;
Connection.Close();
现在,这段代码给了我从过去 7 天到今天的销售报告,但我想要的是只获取本周的报告。所以如果是一周的第 3 天,它只会给我 3 天的报告。
【问题讨论】:
-
这应该真正解决,在进入数据库之前,通过找出当前一周的开始是什么,作为
DateTime或(最好)DateTimeOffset和 问题has an answer 已经。 -
为什么要将日期转换为查询字符串?甚至 MS Access 也有一个可行的日期类型
-
@ŇɏssaPøngjǣrdenlarp,我的日期字段数据类型是日期/时间,但我仍然遇到数据类型不匹配错误,而且我遇到了很多相同的错误,所以我对转换更满意,使确保我没有收到任何错误。
-
不可能比较两个日期并得到数据类型不匹配错误。
-
@ŇɏssaPøngjǣrdenlarp,我也觉得很奇怪,但是即使我使用了下面的解决方案,我也没有转换为字符串,我得到了不匹配错误,直到我转换为字符串并且它起作用了。