2012-02-07 52 views
5

我有这个疑问转换日期时间格式12小时

select CONVERT(varchar(5), tdate ,108) AS [Time] from table 

这给了我的时间以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 

查询,我得到12小时的格式,但我只是好奇,如果有这样做的更短或更好的办法。任何帮助?

回答

6

如果您想将当前日期时间转换例如:

SELECT CONVERT(VARCHAR, getdate(), 100) AS DateTime_In_12h_Format 

相反的GETDATE()你可以把你想要的列的查询(如在你的例子tdate)。如果你只想在12小时的时间,而不是日期和时间使用子串/右分开它们。看来你已经知道如何=)。

This page列出每个日期时间转换。如果您需要其他类型的转换,这非常方便。

6

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

SELECT RIGHT(CONVERT(VARCHAR, getdate(), 100), 7) AS time 

为了您的表中的数据:

select RIGHT(CONVERT(varchar, tdate ,100), 7) AS [Time] from table 
0

下面的代码将返回唯一的一次类似10:30 PM

SELECT FORMAT(CAST(getdate() AS DATETIME),'hh:mm tt') AS [Time] 
相关问题