-1
我的系统昨天返回所有数据,但它应该做的是它应该从今天返回所有数据,我的代码在本地数据库中工作,但是当我上传它时在网络上,并开始使用在线数据库出现问题GETDATE()与我的系统时间不匹配
这里是我的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())
可能是您的网络服务器是不同的时区域 –
所以我的代码可以吗?我唯一应该做的就是联系我的在线服务器? – Newbie10
就像@Prdp说的那样,你的数据库服务器所在的时区与你自己的位置有所不同。一种中和时区差异的方法是使用UTC作为存储和检索数据的标准,并使用'GETUTCDATE()'而不是'GETDATE()'。你总是可以重置数据库服务器上的时区以及备用解决方案 – ughai