-2

SQL Server 2008 には、入力日付を受け取るストアド プロシージャがあります。その日の午前 0 時から午後 11 時 59 分までのすべての行を選択したいと思います。

CREATE PROCEDURE MyProc
@InputDate DATETIME
AS
SELECT * FROM MyTable WHERE DateField >= @InputDate

したがって、次のようにこの proc を呼び出せるようにしたいと考えています。

EXEC MyProc @InputDate=CONVERT(DATETIME, '3/5/2013')

そして、日付が'3/5/2013 0:0:0''3/5/2013 11:59:59' の間のすべての行を返す必要があります。入力日付は時間コンポーネントを無視し、日付を見て独自の時間コンポーネントを追加する必要があります(少なくとも私はそうすべきだと考えています)

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

1

DATE1 日精度のデータ型を使用できます。

CREATE PROCEDURE MyProc
@InputDate DATE
AS
SELECT * FROM MyTable WHERE CAST(DateField AS DATE) = @InputDate

EXEC MyProc @InputDate='2013-03-05'

SQLFiddleを持っている

于 2013-03-07T20:06:48.947 に答える