表SQL的不同时间

时间:2011-12-13 20:39:35

标签: tsql

我的表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

3 个答案:

答案 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。