DateTime
ストアドプロシージャを実行するために、実行コマンドで日付(データ型)を渡すにはどうすればよいですか?
これがコードスニペットです。
ALTER PROCEDURE [dbo].[datefiltered]
@months_margin int,
@oDate datetime
AS
BEGIN
SELECT *
FROM dbo.table20
WHERE date = oDate
-- more code...
END
GETDATE()
関数を使用してこのストアドプロシージャを実行しようとしていますが、日付と時刻を文字列として渡そうとしていますが、機能しません。
exec datefiltered 23 getDate()
日付フィルターを適用するため、日時の値を渡す必要はありません。同等にするためにDATEデータ型に変換できます。
select * from dbo.table20
where date = CAST(@oDate AS DATE)
また、デフォルトとしてGETDATE()を渡すだけの場合は、以下に示すように、getdateをデフォルト値として保持できます。
Alter procedure [dbo].[datefiltered]
@months_margin int,
@oDate datetime = null
AS
Begin
IF @oDate IS NULL
BEGIN
SET @oDate = CAST(GETDATE() AS DATE)
END
デフォルト値でプロシージャを呼び出す場合、そのパラメータ値を渡す必要はありません。
exec datefiltered 23 -- getdate() filter is applied automatically
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加