将日期时间格式转换为12小时

dan*_*u11 6 sql sql-server sql-server-2005

我有这个问题

select CONVERT(varchar(5), tdate ,108) AS [Time] from table 
Run Code Online (Sandbox Code Playgroud)

这给了我24小时格式的时间(军事)

我想将其转换为12小时格式,所以我尝试了下面的查询

 select SUBSTRING(CONVERT(VARCHAR, tdate, 100),13,2) + ':' 
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),16,2) + ''
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),18,2) AS T  
from table
Run Code Online (Sandbox Code Playgroud)

我得到12小时的格式,但我只是好奇,如果有更短或更好的方式.任何帮助?

Gas*_*a79 7

如果要转换当前日期时间,例如:

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

您可以将所需的列放在查询中(例如示例中的tdate),而不是getdate().如果你想要12小时的时间而不是日期和时间使用substring/right来分隔它们.看来你已经知道如何=)了.

此页面列出了每个日期时间转换.如果您需要其他类型的转换,这非常方便.


Tar*_*ryn 6

这将只返回时间,而不是日期.

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

对于您的表数据:

select RIGHT(CONVERT(varchar, tdate ,100), 7) AS [Time] from table 
Run Code Online (Sandbox Code Playgroud)