0

こんなテーブルがありますが、

テーブル名:transaction_tbl

ここに画像の説明を入力

次のようなストアド プロシージャがあります。

ALTER PROCEDURE [dbo].[Test] @startdate NVARCHAR(100),
                             @enddate   NVARCHAR(100)
AS
  BEGIN
      SELECT t.PlateNo
      FROM   Transaction_tbl t
      WHERE  dtime BETWEEN @startdate + ' 00.01.00.00' AND @enddate + ' 23:59.59.00'
  END 

これを実行しているときに、このエラーが発生します

nvarchar データ型を datetime データ型に変換すると、範囲外の値になりました。

開始日を開始時刻で、終了日をその日の終了時刻で渡そうとしています。

4

4 に答える 4

1

ISO 日時形式を使用します。

  1. =@dとして宣言datetimegetdate()
  2. @DDとして宣言するdatetime
  3. 選択するformat(@d, 'yyyymmdd hh:mm:ss.fff')
  4. 設定@dd = format(@d, 'yyyymmdd hh:mm:ss.fff')
  5. 選択する@dd

format() をいじると、私の問題を解決するのに役立ちました..どれが標準(おそらく112)かはわかりませんが、機能します。

于 2013-10-27T05:15:33.867 に答える