TWo*_*ood 8 sql t-sql sql-server sql-server-2008-r2
CAST(DATEPART(hh, timestamp) AS varchar(2)) + ':00' AS Hour
Run Code Online (Sandbox Code Playgroud)
这将使我从时间戳字段中获得时间,但是在小时0-9的情况下,它不会填充前导零,因此当我按小时降序排序时,它不能正确排序.
不知道这里有什么问题.我指定一个2 char varchar以允许前导零的额外空间.希望有一种方法可以解决这个问题而不通过我的字段通过一个函数来填充我的前导零.
Aar*_*and 18
SELECT RIGHT('0' + CONVERT(VARCHAR(2), DATEPART(HOUR, GETDATE())), 2) + ':00';
Run Code Online (Sandbox Code Playgroud)
不想用0填充?好的,你可以用一种同样丑陋的方式做到这一点而不会出现填充问题:
SELECT LEFT(CONVERT(TIME(0), GETDATE()), 2) + ':00';
Run Code Online (Sandbox Code Playgroud)
显然GETDATE()用您的列名替换.我希望这不是真的,timestamp因为这是一个保留字 - 对于与日期或时间无关的数据类型,遗憾的是.
如果您不喜欢这些解决方案中的任何一个,那么只需从SQL Server中选择数据并让您的客户端应用程序处理格式/演示文稿详细信息.当然,这对于C#的format()功能来说很容易.