sql cast of hourtime of datetime,而不会在单个数字小时内丢失前导零

前端之家收集整理的这篇文章主要介绍了sql cast of hourtime of datetime,而不会在单个数字小时内丢失前导零前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
CAST(DATEPART(hh,timestamp) AS varchar(2)) + ':00' AS Hour

这将使我从时间戳字段中获得时间,但是在小时0-9的情况下,它不会填充前导零,因此当我按小时降序排序时,它不能正确排序.

不知道这里有什么问题.我指定一个2 char varchar来为前导零提供额外的空间.希望有一种方法可以解决这个问题而不通过我的字段通过一个函数来为我填充前导零.

解决方法

SELECT RIGHT('0' + CONVERT(VARCHAR(2),DATEPART(HOUR,GETDATE())),2) + ':00';

不想用0填充?好吧,你可以用一种同样丑陋的方式做到这一点而不会出现填充问题:

SELECT LEFT(CONVERT(TIME(0),GETDATE()),2) + ':00';

显然用您的列名替换GETDATE().我希望这不是真正的时间戳,因为这是一个保留字 – 对于与日期或时间无关的数据类型,遗憾的是.

如果您不喜欢这些解决方案中的任何一个,那么只需从sql Server中选择数据并让您的客户端应用程序处理格式/表示详细信息.当然,使用C#的format()函数很容易做到这一点.

猜你在找的MsSQL相关文章