sql中的datetime在java,Dapper SqlDateTime在SQL Server中使用GETDATE()溢出

我有以下代码从表单获取输入并调用存储过程将其存储在数据库中 .

[HttpPost]

public ActionResult Index(GuestMessage model)

{

if (ModelState.IsValid)

{

using(IDbConnection conn = DatabaseAcess.OpenConnection())

{

const string storedProcedure = "dbo.InsertMessage";

conn.Execute(storedProcedure, new GuestMessage { Name = model.Name, Email = model.Email, Message = model.Message }, null, null, CommandType.StoredProcedure);

return View("ThankYou");

}

}

return View();

}

有三个字段, Name , E-mail 和 Message 必须由用户填写 . 在数据库中,我存储用户从这三个字段输入的数据,以及使用名为dbo.Insert Message的存储函数输入的时间 .

BEGIN

BEGIN TRAN

SET NOCOUNT ON;

DECLARE @GuestID int;

INSERT INTO Guest(Name, Email) VALUES (@Name, @Email);

SELECT @GuestID = scope_identity();

INSERT INTO Message (EntryDate, GuestID, Message, Status)

VALUES (GETDATE(), @GuestID, @Message, 2);

COMMIT TRAN

END

请注意,我没有将输入日期和时间作为输入参数传递给存储过程,因为不需要这样做 . 我使用SQL Server中的内置函数 GETDATE() 来确定用户输入消息的时间 .

但是,每当我尝试输入消息时,我都会收到以下错误:

SqlDateTime溢出 . 必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值