SQL - 使用hh:mm:ss将日期时间格式转换为12小时格式

Man*_*aju 1 sql-server-2008

我有一个查询,

SELECT CONVERT(VARCHAR, getdate(), 100) AS TwelveHH
Run Code Online (Sandbox Code Playgroud)

以上查询的输出是Sep 26 2012 6:02PM&我想从上面的查询中得到小时,我将使用查询,如,

SELECT RIGHT(CONVERT(VARCHAR, getdate(), 100), 7) AS getTime
Run Code Online (Sandbox Code Playgroud)

以上查询的输出是6:02PM.

但是,我希望输出像- 格式的.6:02:19PM(hh:mm:ss)

我怎么弄hh:mm:ss格式?

Aar*_*and 5

几年前,我写了这本方便的指南,今天仍然对我很有帮助 - 主要是因为我无法记住所有不同风格数字的含义:

SELECT LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11));
Run Code Online (Sandbox Code Playgroud)

在我的时区,这将返回:

9:12:55 AM
Run Code Online (Sandbox Code Playgroud)

这不正是你想要的东西-你可以使用REPLACESTUFF如果删除该空间是非常重要的.例如

SELECT REPLACE(LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11)), ' ', '');
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2012中,您将能够更轻松地执行此操作 - 您可以使用C#格式化格式:

SELECT FORMAT(CURRENT_TIMESTAMP, 'h:mm:ss tt');
Run Code Online (Sandbox Code Playgroud)

编辑根据以下评论中的新增和变更要求:

SELECT CONVERT(CHAR(11), CURRENT_TIMESTAMP, 109)
 + ' ' + LTRIM(RIGHT(CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22), 11));
Run Code Online (Sandbox Code Playgroud)

结果:

Sep 26 2012 10:03:52 AM
Run Code Online (Sandbox Code Playgroud)