sql cast of hourtime of datetime,而不会在单个数字小时内丢失
发布时间:2020-12-12 06:44:01 所属栏目:MsSql教程 来源:网络整理
导读:CAST(DATEPART(hh,timestamp) AS varchar(2)) + ':00' AS Hour 这将使我从时间戳字段中获得时间,但是在小时0-9的情况下,它不会填充前导零,因此当我按小时降序排序时,它不能正确排序. 不知道这里有什么问题.我指定一个2 char varchar来为前导零提供额外的空间
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()函数很容易做到这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |