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'

最初の部分の>=と2番目の部分の<に注意してください。これを提案するのは、月の最後の日を把握するよりも、「来月」の最初の日(12月/ 1月の詳細を把握する必要がある)を把握するのが(ほとんど)簡単だからです。

しかし、その情報をすばやく提供するユーティリティがある場合は、問題なく機能します。

日付のインデックスをより簡単に活用できるため、この方法で実行する必要があります。日付のコンポーネントでクエリを実行する場合、特別なインデックスを作成しない限り、テーブルをスキャンする可能性が非常に高くなります(通常は必要なものではありません)。

于 2013-01-02T19:00:42.363 に答える