2013-01-02 57 views
0

我想要获得按月份保存的所有记录,按日期保存的所有记录。 我的日期列数据类型是“日期”,并命名为“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未知月”?

+0

'month = 6 and year = 2012'是什么?'?这应该是代码? –

+0

您是否尝试删除{0}和{1}周围的引号? – PinnyM

+0

月份和年份我想通过datetimepicker – Saqi

回答

0

不用魔法索引你可能会更好做一个查询,如:

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

注> =在第一部分和第二部分<。我只是建议这样做,因为它是(大部分)微不足道的,以找出“下个月”的第一个(需要捕捉12月/ 1月的细节),而不是找出一个月的最后一天。

但是,如果你有公用事业快速给你的信息,这工作得很好。

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

相关问题