gpt4 book ai didi

sql - 比较存储过程中的日期时间值

转载 作者:行者123 更新时间:2023-12-02 04:35:05 26 4
gpt4 key购买 nike

我在用表中的 DateTime 格式编写 SQL Server 查询/过程时遇到问题。

我的应用程序在带有 SQL Server 的标准 ASP.NET MVC4 堆栈上运行。

我的表 Bookings 具有以下结构:

CREATE TABLE [dbo].[Bookings] 
(
[BookingId] INT IDENTITY (1, 1) NOT NULL,
[ShowId] INT NOT NULL,
[RowId] INT NULL,
[Username] VARCHAR(100) NULL,
[PaymentId] INT NULL,
[ShowDate] DATETIME NULL,
.....
....
);

我编写了两个存储过程,我试图将表列 ShowDate 与存储过程中声明的不同日期参数进行比较。

程序#1:

CREATE PROCEDURE [dbo].[GetBookingsByDate]
@venueid int,
@fromdate datetime,
@todate datetime
AS
BEGIN
SELECT
City, Title, ScreenTitle, ShowDate,
SUM([Qty]) AS Quantity,
SUM([Charges]) AS TotalAmount,
SUM([OtherCharges]) AS OtherCharges
FROM
ShowBookings
WHERE
Venueid = @venueid
AND ShowDate BETWEEN @fromdate AND @todate
GROUP BY
ScreenId, ShowDate, Venueid, Title, ScreenTitle, City
END

程序#2:

CREATE PROCEDURE [dbo].[GetAudienceReportsHistory]
@state varchar,
@city varchar,
@theaterName varchar,
@showdate datetime
AS
BEGIN
SELECT
b.BookingId, b.MobileNo, b.SeatNumbers, b.EmailId,
sc.ScreenTitle, sh.ShowTime, a.Title,
b.Username, b.SMSStatus
FROM
Bookings b
JOIN
Shows sh ON b.ShowId = sh.Id
JOIN
Venues AS v ON sh.Venue_Id = v.Id
JOIN
Artifacts a ON sh.Artifact_Id = a.Id
JOIN
Screens AS sc ON sh.Screen_ScreenId = sc.ScreenId
WHERE
b.ShowDate = @showdate
AND b.IsBooked = 'true'
AND b.TimeSolt = '0'
AND v.Title = @theaterName
AND v.City = @city
END

如您所见,过程 #1 有两个日期时间参数,fromdatetodate。第二个过程只需要一个日期时间参数 showdate

程序 #1 返回正确的结果集,但是程序 #2 根本不返回任何结果。但是我在表中进行了交叉检查,我有正确的数据应该为 Proc2 查询返回。似乎有些日期时间格式不匹配。

我正在以“yyyy-mm-dd”格式(例如:2017-05-30)向查询发送日期时间参数。在表内,ShowDate 列以“dd-mm-yyyy”(例如:30-05-2017)格式存储。

我已经尝试以不同的日期格式发送参数,但我没有得到 Proc2 的任何结果。请帮助我解决这个问题。提前致谢。如果您需要更多信息,请告诉我。

最佳答案

你必须注意 datetime 包括时间,所以当你将它等同于 datetime 字段时,由于时差,它永远不会相等......你可以做的是转换两个日期......同时在日期内捕获时间

cast(showdate as date) = cast(@showdate as date)

或 DateDIFF

datediff(day,@showdate,showdate) = 0    

关于sql - 比较存储过程中的日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44301798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com