我的系统昨天返回所有数据,但它应该做的是它应该从今天返回所有数据,我的代码在本地数据库上工作,但当我上传到网上并开始使用在线数据库时问题发生
这是我的sql代码:
CREATE PROCEDURE [dbo].[DisplayReservationToday]
AS
SELECT DISTINCT
r1.RESERVATION_ID, r4.LAST_NAME + ', ' + r4.FIRST_NAME AS NAME,
r2.ROOM_ID, r3.ROOM_TYPE, r2.NO_GUEST,
CONVERT(DATE, r2.ARRIVAL_DATE) AS ADate,
CONVERT(DATE, r2.DEPARTURE_DATE) AS DDate, r2.STATUS
FROM
TBL_Transaction AS r1, TBL_SubTransaction AS r2,
TBL_Room AS r3, TBL_Client AS r4
WHERE
r1.RESERVATION_ID = r2.RESERVATION_ID
AND r2.ROOM_ID = r3.ROOM_ID
AND r1.USERNAME = r4.USERNAME
AND UPPER(r2.STATUS) != UPPER('Cancelled')
AND CONVERT(DATE, r2.ARRIVAL_DATE) = CONVERT(DATE, GETDATE())
答案 0 :(得分:4)
发生这种情况可能是因为在线数据库服务器与您的本地计算机处于不同的时区。
GETDATE()
返回数据库dserver所在时区的本地日期时间值,因此您需要根据本地计算机所属的时区获取日期。
EG。转换为IST(印度标准时间)使用偏移+5.30
SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30') as [CurrentDateTime]
因此,在您的查询中,您可以进行更改
.
.
AND CONVERT(DATE, r2.ARRIVAL_DATE) = CONVERT(DATE, SWITCHOFFSET(SYSDATETIMEOFFSET(), '+05:30'))