在存储过程中返回null的日期时间
本文关键字:日期 时间 null 返回 存储 存储过程 过程中 | 更新日期: 2023-09-27 17:54:38
我正在另一个存储过程中执行一个存储过程。
我传递参数,当值不是null时,它工作得很好,但是当值生成为0行时,它给我错误。
存储过程: declare @LDate datetime
declare @DateEntered datetime
insert into Table1 values(5,5)
EXEC @LDate = GetLDate @ID, @GID // other stored procedure inside the main stored procedure
// GetLDate is ("select Date1 from TableGetDate where @ID =4,@GID=5")
if(CAST(@LDate as datetime) < CAST(@DateEntered as datetime))
Select '-1'
else
SELECT '-2'
当我在c#代码中调用ExecuteScalar
时,如果@LDate
没有返回日期,它返回null。如果@LDate
返回一个日期,那么一切都很好。
如何解决这个问题?
如果对象值为空,可以安全地将返回对象转换为日期时间。
DateTime dateTime = new DateTime();
try
{
dateTime = Convert.ToDateTime(cmd.ExecuteScalar());
}
catch
{
dateTime = new DateTime(1900, 1, 1);
}
您不需要将日期时间强制转换为日期时间。那没用。
declare @LDate datetime
declare @DateEntered datetime
EXEC @LDate = GetLDate @ID,@GID //Other store proc inside the main store proc
if (@LDate is null)
SELECT '0'
else if( @LDate < @DateEntered )
SELECT '-1'
else
SELECT '-2'