Tsql 与SQL表不同的时间

Tsql 与SQL表不同的时间,tsql,Tsql,我有由日期时间字段组成的表进程 进程(Id为int,RunDate为DateTime) 我需要以RunDate作为时间运行Distinct,而不需要秒 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 为了检索它,我使用下面

我有由日期时间字段组成的表进程

进程(Id为int,RunDate为DateTime) 我需要以RunDate作为时间运行Distinct,而不需要秒

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

试试看

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
选项,请向上投票。

试试看

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
选项,请向上投票。

样式108将返回hh:mm:ss。对数据类型使用CHAR(5)将只返回hh:mm部分

SELECT DISTINCT CONVERT(CHAR(5), RunDateTime, 108) AS d
    FROM Processes
样式108将返回hh:mm:ss。对数据类型使用CHAR(5)将只返回hh:mm部分

SELECT DISTINCT CONVERT(CHAR(5), RunDateTime, 108) AS d
    FROM Processes
如果你想的话,你可以取消上午/下午的节目


如果您愿意,您可以取消AM/PM。

编辑您的答案以建议转换是个好主意。但愿我早就想到了。哦,等等,;-)是的,你做到了。。。我只是在谷歌上搜索然后把它粘贴到我的答案里。。。虽然我的粘贴没有你的那么彻底,因为你提供了CONVERT的工作样本,而我没有。现在我添加了另一个编辑:-)编辑您的答案以建议转换的好主意。但愿我早就想到了。哦,等等,;-)是的,你做到了。。。我只是在谷歌上搜索然后把它粘贴到我的答案里。。。虽然我的粘贴没有你的那么彻底,因为你提供了CONVERT的工作样本,而我没有。现在我添加了另一个编辑:-)