我的表Proccesses包含Date Time Field。
Proccesses(Id为int,RunDate为DateTime) 我需要RunDate运行Distinct as Time Without seconds
For Example
ID RunDate
1 2011-12-13 12:36:26.483
2 2011-12-12 12:37:22.421
3 2011-12-11 12:36:44.421
我需要在输出中接收
Output
12:01
12:03
为了检索它,我使用以下SQL并且它正在工作
SELECT DISTINCT DATENAME(hour, RunDateTime) + ':' +
DATENAME(mi, RunDateTime) AS d
from Proccesses
如果分钟小于10(例如8)的问题 我收到单个数字“8”,我想收到两位数08
例如,我收到 12:8 ,我需要接收 12:08
答案 0 :(得分:1)
试
SELECT DISTINCT
RIGHT ('00' + CAST(DATENAME(hour, RunDateTime) AS VARCHAR(2)), 2) + ':' +
RIGHT ('00' + CAST(DATENAME(mi, RunDateTime) AS VARCHAR(2)), 2)
from Proccesses
或者你可以使用CONVERT
并相应地处理字符串结果......
编辑:如果您最终使用CONVERT
选项,请点击the answer from Joe Stefanelli。
答案 1 :(得分:0)
CONVERT样式108将返回hh:mm:ss。对数据类型使用CHAR(5)将只返回hh:mm部分。
SELECT DISTINCT CONVERT(CHAR(5), RunDateTime, 108) AS d
FROM Processes
答案 2 :(得分:0)
SELECT RIGHT(CONVERT(VARCHAR,RunDateTime),7)
如果您愿意,可以剥离AM / PM。