先月完了したとスタンプされたすべてのレコードの数を返そうとしています。列名の実際の日時フィールド。これは、先月の記録が完了していることを確認する必要があるのと同じフィールドです。
これは私が持っているものです
SELECT count(*)
FROM PhoneCall AS p WITH (nolock)
WHERE ( p.actualend >= CAST(CONVERT(varchar(8), DATEADD(dd, - (DAY(DATEADD(mm, 1, GETDATE())) - 1), DATEADD(mm, - 1, GETDATE())), 1) AS datetime))
AND ( p.actualend <= CAST(CONVERT(varchar(8), DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, GETDATE()), 0)), 1) AS datetime))
このコードでは、わずかに高い結果が得られます (合計結果は 847 です)。
しかし、このコードを実行すると
SELECT count(*)
FROM PhoneCall AS p WITH (nolock)
WHERE p.actualend BETWEEN '03/01/2013 00:00:00' AND '03/31/2013 23:59:59'
合計 843 レコードを取得します。最初のクエリを修正して、両方のクエリで同じ合計を取得するにはどうすればよいですか?
ありがとう