0

我想获取所有记录,这些记录按第 6 个月保存,所有记录按日期保存。我的日期列数据类型是“日期”并命名为“Emissao”

month = 6 and year =2012;
query.Append(" SELECT NOTA,OPERADOR,EMISSAO,ORIGEM,TOTAL,ESPECIE,EMISSAO,HORA,DATA_IMPRESSAO,HORA_IMPRESSAO,CANCELADO ");
query.AppendFormat(" FROM VENDAS WHERE Month(EMISSAO)='{0}' and Year(EMISSAO)='{1}' ", Convert.ToInt32(month), Convert.ToInt32(year));
cmd.CommandText = query.ToString();

但我有“托坎未知月”的例外?

4

1 回答 1

0

如果没有魔术索引,您最好执行以下查询:

SELECT ... FROM VENDAS WHERE EMISSAO >= '06/01/2012' AND EMISSAO < '07/01/2012'

注意第一部分的 >= 和第二部分的 <。我只建议这样做,因为(大多数情况下)找出“下个月”的第一天(需要了解 12 月/1 月的细节)比找出一个月的最后一天更容易。

但是,如果您有实用程序可以快速为您提供该信息,那就可以了。

您想这样做是因为您可以更轻松地利用日期的索引。如果您按日期的某个组件进行查询,那么您将对表进行表扫描的几率非常高(通常不是您想要的),除非您做一些特殊的索引。

于 2013-01-02T19:00:42.363 回答