在SQL Server中将24h转换为12h日期时间格式

时间:2017-08-21 11:21:46

标签: sql-server

我想要一个日期时间变量,它将具有12小时的日期时间格式。

下面的示例在12小时内转换日期,但没有帮助,因为它是VARCHAR格式,如果尝试在datetime中转换它显示为2016-03-08 00:00:00.000-

declare @t datetime = NULL

set @t = '2016-03-08 00:00:00'

SELECT CONVERT(VARCHAR, @t, 100) AS DateTime_In_12h_Format

我想要一个变量,它将保持12小时格式,就像这样

declare @t datetime = NULL

set @t = '2016-03-08 00:00:00'

set @t = CONVERT(datetime, @t, 100)

select @t -> this should be -> Mar  8 2016 12:00AM

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

再宣布一个varchar以保存新的datetime

declare @t datetime = NULL
declare @t1 varchar(20) = NULL
set @t = '2016-03-08 00:00:00'
set @t1 = CONVERT(varchar(20), @t, 100) 
select @t1 as DateTime_In_12h_Format