需要部分日期

Ruh*_*aan 0 sql sql-server sql-server-2008 sql-server-2008-r2

我正在使用SQL Server 2008R2.我试图在输出中获取日期的一部分,我的列是datetime数据类型.例如,如果当前日期和时间是2016-06-28 17:34:12.060,那么我需要输出17:00只有小时和:00分钟.

我一直试过这个,直到现在

Select DateName(HH,SUBSTRING('2016-06-28 17:34:12.060',12,5)) +':00'
Run Code Online (Sandbox Code Playgroud)

这给了我正确的输出.但是当我传递datetime数据类型的列名,然后它给出错误,

Select DateName(HH,SUBSTRING(TimeInHour,12,5)) +':00'
Run Code Online (Sandbox Code Playgroud)

给出错误,

对于子字符串函数的参数1,参数数据类型时间无效.

我知道我SUBSTRING()在错误的地方使用,但我真的不知道如何实现那个输出.帮助将非常明显.我需要输出为HH:00,小时将是00分钟以外的任何时间.

Gor*_*off 5

你为什么要用substring()?第二个参数datename()应该是日期/时间数据类型.那么,就这样做:

Select DateName(hour, '2016-06-28 17:34:12.060') + ':00'
Run Code Online (Sandbox Code Playgroud)