从SQL Server 2012查询结果中减去小时数

时间:2015-10-01 19:51:01

标签: sql sql-server datetime sql-server-2012

我在SQL Server 2012 Management Studio中的报警系统信号自动化平台数据库上运行查询,我遇到了一些小问题。

我的查询运行得很好,但我无法将结果细化到我想要的水平。

我选择了一些格式为DATETIME的列,我只想取列中的值并从中减去4小时(即从GMT到EST),然后输出 值进入查询结果。

我可以找到关于DATESUB()或类似命令的所有文档都显示了语法中具有特定DATETIME的示例,并且我没有具体的内容,只有138,000行的列我想调整时区。

我是否遗漏了一些大的东西,或者我只是需要在操作查询结果后继续手动调整?此外,如果它有所不同,我有一个只读访问级别,并且对以任何方式更改表数据不感兴趣。

2 个答案:

答案 0 :(得分:21)

嗯,对于初学者来说,你需要知道你并不仅限于在静态值上使用函数,你可以在列上使用它们。

看来你想要的只是:

SELECT DATEADD(HOUR,-4,YourColumnWithDateTimes)
FROM dbo.YourTable

答案 1 :(得分:-3)

也许会有所帮助

SELECT DATEPART(HOUR, GETDATE()); 

DATEPART docs from MSDN