我有一个像
这样的查询SELECT CONVERT(VARCHAR, getdate(), 100) AS TwelveHH
上述查询的输出为Sep 26 2012 6:02PM
&我想从上面的查询中获取小时数,我将使用像
SELECT RIGHT(CONVERT(VARCHAR, getdate(), 100), 7) AS getTime
上述查询的输出为6:02PM
。
但是,我希望输出 秒 ,如6:02:19PM
- (hh:mm:ss)
格式。
如何获得 hh:mm:ss 格式?
答案 0 :(得分:5)
几年前我写了this handy guide,今天仍然对我很有帮助 - 主要是因为我无法记住所有不同风格数字的含义:
SELECT LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11));
在我的时区,这会返回:
9:12:55 AM
这不是正好您想要的 - 如果移除该空间非常重要,您可以使用REPLACE
或STUFF
。 e.g。
SELECT REPLACE(LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), ' ', '');
在SQL Server 2012中,您可以更轻松地完成此操作 - 您可以使用C#格式化格式:
SELECT FORMAT(CURRENT_TIMESTAMP, 'h:mm:ss tt');
编辑根据以下评论中的新要求和更改要求:
SELECT CONVERT(CHAR(11), CURRENT_TIMESTAMP, 109)
+ ' ' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11));
结果:
Sep 26 2012 10:03:52 AM
答案 1 :(得分:2)
你应该这样做:
SELECT CONVERT(VARCHAR(10),GETDATE(),108) AS getTime