Sql server 如何修改服务器日期,使其与用户的日期一致(提前8小时)

Sql server 如何修改服务器日期,使其与用户的日期一致(提前8小时),sql-server,asp.net-mvc,Sql Server,Asp.net Mvc,我有一个SQL,它创建了一个按日期分组的报告: select [Date] = convert(date, a.Date) , [Count] = count(*) from Audit a group by a.Date 问题是SQL Server日期比用户输入数据的日期晚了8小时 是否有一种方法可以更改group by使用的日期,以便它根据用户时区的正确日期进行分组(提前8小时) 为此: 2017-03-01 1:45 2017-03-01 8:45 2017-03-01 8:45

我有一个SQL,它创建了一个按日期分组的报告:

select [Date] = convert(date, a.Date)
    , [Count] = count(*)
from Audit a
group by a.Date
问题是SQL Server日期比用户输入数据的日期晚了8小时

是否有一种方法可以更改group by使用的日期,以便它根据用户时区的正确日期进行分组(提前8小时)

为此:

2017-03-01 1:45
2017-03-01 8:45
2017-03-01 8:45
2017-03-01 8:47
2017-03-01 8:45
之前-不正确

2017-03-01 5
我需要什么

2017-03-01 1
2017-03-01 4

尝试dateadd函数在查询中添加8小时

选择[Date]=CONVERT(VARCHAR(10),DATEADD(HOUR,8,a.Date),101) ,[Count]=计数(*) 从审计a
按转换分组(VARCHAR(10),DATEADD(HOUR,8,a.date),101)

您能确认日期是在上午8点之后,它应该是新行还是要按每小时分组吗?创建一个视图,根据需要进行分组,但通常您应该将所有日期存储在UTC中。您能给我一个示例,说明如何将其应用到问题中的SQL查询中。感谢选择日期添加(2017-03-01 08:00)小时;嗨,我看到很多反对票。你需要举个例子,因为我认为人们对一句话的答案并不满意。你能举个例子说明如何修改查询问题吗?我想这样就可以了。Thanks我认为dateadd线索对开发人员来说已经足够了,下面的查询可能会有所帮助。从按dateadd(HOUR,8,a.Date)审核组中选择[Date]=dateadd(HOUR,8,a.Date),[Count]=Count(*)