如何编写我可以按月获取数据的查询?

时间:2013-01-02 18:54:43

标签: c# mysql

我希望得到所有按月保存的记录,所有记录按日期保存。 我的日期列数据类型是'日期'并命名为'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();

但我有'Tokan Unknown Month'的例外情况?

1 个答案:

答案 0 :(得分:0)

如果没有魔术索引,您可能最好不要进行查询,例如:

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

注意第一部分的&gt; =和&lt;在第二部分。我只是建议这一点,因为它(大多数)是微不足道地弄清楚“下个月”的第一个(需要捕捉12月/ 1月的细节),而不是弄清楚一个月的最后一天。

但是如果你有实用工具来快速提供这些信息,那就可以了。

您希望以这种方式执行此操作,因为您可以更轻松地利用日期上的索引。如果您通过组件查询日期,赔率非常高,您将对表进行扫描(通常不是您想要的),除非您进行一些特殊的索引。