在DATETIME变量为空时插入空值(Inserting null when variable is empty for DATETIME)

编程入门 行业动态 更新时间:2024-10-25 07:27:17
在DATETIME变量为空时插入空值(Inserting null when variable is empty for DATETIME)

我有一个sp从我的表单更新我的表。 当我尝试sp运行更新并将datetime字段留空时,它将默认日期时间设置为“1900-01-01 00:00:00.000”我怎样才能将它设置为空?

我已经检查了我的表单发送填充日期的值是空的。

我在这里有sp的例子:

ALTER PROCEDURE [dbo].[DBK_spDataUpdate] @FirstName AS NVARCHAR(250)= NULL @FillDate AS DATETIME = NULL @DataID AS BIGINT SET NOCOUNT ON; UPDATE dbo.DBK_tbData SET FirstName = @FirstName, FillDate = @FillDate WHERE DataID = @DataID

I have an sp that update my table from my form. When I try the sp is running to update and leave the datetime field empty, it put the default datetime as "1900-01-01 00:00:00.000" How can I set it to be null?

I have checked the values my form send the filldate is empty.

I have example of sp here:

ALTER PROCEDURE [dbo].[DBK_spDataUpdate] @FirstName AS NVARCHAR(250)= NULL @FillDate AS DATETIME = NULL @DataID AS BIGINT SET NOCOUNT ON; UPDATE dbo.DBK_tbData SET FirstName = @FirstName, FillDate = @FillDate WHERE DataID = @DataID

最满意答案

在这里使用一个小水晶球,但我相信OP会将一个空字符串( '' )传递给datetime参数,而不是NULL 。 这是两个非常不同的价值观; 因为''将导致日期时间0 (即1900-01-01' )。

如果这个猜测是正确的,那么你可以使用NULLIF :

ALTER PROCEDURE [dbo].[DBK_spDataUpdate] @FirstName AS NVARCHAR(250)= NULL, @FillDate AS DATETIME = NULL, @DataID AS BIGINT AS SET NOCOUNT ON; UPDATE dbo.DBK_tbData SET FirstName = @FirstName, FillDate = NULLIF(@FillDate, '19000101') WHERE DataID = @DataID;

否则,而不是传递一个空字符串,传递NULL

using a small crystal ball here, but I believe the OP is passed an empty string ('') to the datetime parameter, not a NULL. These are two very different values; as '' will result in the datetime 0 (which is 1900-01-01').

If this guess is correct, then you could use NULLIF:

ALTER PROCEDURE [dbo].[DBK_spDataUpdate] @FirstName AS NVARCHAR(250)= NULL, @FillDate AS DATETIME = NULL, @DataID AS BIGINT AS SET NOCOUNT ON; UPDATE dbo.DBK_tbData SET FirstName = @FirstName, FillDate = NULLIF(@FillDate, '19000101') WHERE DataID = @DataID;

Otherwise, instead of passing an empty string, pass a NULL.

更多推荐

本文发布于:2023-07-05 01:06:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1031251.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   为空   DATETIME   Inserting   empty

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!