これに対する答えを探しましたが、実際に役立つものは見つかりませんでした。テーブルにデータを書き込むストアド プロシージャがあります。挿入には DateTime フィールドが含まれますが、入力されるデータによっては、このフィールドが空になる場合があります。私のクラシック ASP ページのコードは次のようになります。
If Request.Form("Status") = "Closed" Then
Status = "Closed"
DateClosed = Now()
Else
Status = "OPEN"
DateClosed = NULL
End If
SP_AddToTable = "MyTable '" & Status & "', '" & DateClosed & "'"
Set SQLQuery = objConn.Execute(SP_AddToTable)
ストアド プロシージャは次のようになります。
USE [MyDatabase]
GO
/****** Object: StoredProcedure [dbo].[SP_AddToTable] Script Date: 04/30/2013 10:00:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_AddToTable]
@Status varchar(20),
@DateClosed datetime
AS
INSERT INTO MyTable (
[Status],
DateClosed,
)
VALUES (
@Status,
@DateClosed)
実際の日付値を渡すと正常に動作しますが、NULL 値が渡された場合、または DateClosed フィールドにデータを渡さなかった場合、フィールドのデフォルトは 1900 年 1 月 1 日になります。私の ASP コード、またはストアド プロシージャで) テーブルの DateClosed フィールドを空のままにしますか?
私はストアド プロシージャにまったく慣れていないので、初心者のエラーはご容赦ください。:)
ありがとう。