如何解决将日期参数更改为前一天
简而言之,我有一个接受日期参数的存储过程。正在使用 Linq-to-SQL 调用此存储过程。
程序代码:
ALTER PROCEDURE [dbo].[usp_Artemis_Tracking_SalesData]
@ShopID int,@StartDate Date,@EndDate Date,@Daily bit
AS
BEGIN
SET NOCOUNT ON;
SELECT @EndDate;
....
END
如果我使用以下方法调用该过程
Dim Var = MyProc(#3/1/2021#,Today)
它传递了 3/1/2021 00:00:00
和 3/11/2021 00:00:00
两个日期(今天是 11 号),但 SQL 中的参数将第二个变量设为 3/10/2021
(前一天)>
但是
如果我把电话改成
Dim Var = MyProc(#3/1/2021#,Today.ToShortDateString)
然后 SQL Server 将第二个变量视为 3/11/2021
...
如果我将它作为 #3/11/2021#
传递也是如此,但如果我使用 Today
函数或实际上任何类型为 Date 的变量,它会被推回到前一天。
旁注:如果我在日期上添加一个小时,以便通过 Today.AddHour(1)
然后我在 SQL 中再次获得第 11 个
帮助!
解决方法
为了摆脱对午夜的困惑,假设我们在 3/11/2021 00:00:00 增加了一分钟。现在是 3/11 或 3/11/2021 凌晨 12:01:00 午夜后一分钟。如您所见,您发送的是 3/11/2021 12:00:00 AM。除非发生在午夜时分,否则不会包括 3/11 发生的任何事情。
只需在第二个参数中添加一天即可。这将带您到 3 月 11 日午夜或 3 月 12 日凌晨 12 点
Dim Var = MyProc(#3/1/2021#,Today.AddDays(1))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。