在SQL中将时间转换为12小时格式

时间:2011-01-20 09:43:26

标签: sql sql-server sql-server-2008

如何在SQL Server 2008中将24小时格式化时间转换为12小时格式化时间?

6 个答案:

答案 0 :(得分:23)

你是否在时间类型的变量/列中有当前时间?如果是这样,很容易:

declare @t time
set @t = '14:40'

select CONVERT(varchar(15),@t,100)

结果:

2:40PM

如果它位于datetime(2)变量中,那么您必须在运行CONVERT后删除日期部分。如果它在字符串中,则先CONVERTtime,然后使用上面的代码。

答案 1 :(得分:7)

有时您需要内联:

SELECT CONVERT(varchar(15),  CAST(GETDATE() AS TIME), 100) as AmPmTime

答案 2 :(得分:6)

要添加到rAdmin的注释,语法为:

CONVERT(data_type,expression,style_code)

以下是您可以使用的其他一些样式代码:

SELECT
GETDATE() AS GetDate,
CONVERT(VARCHAR,GETDATE(),0) AS '0',
CONVERT(VARCHAR,GETDATE(),100) AS '100',
CONVERT(VARCHAR,GETDATE(),1) AS '1',
CONVERT(VARCHAR,GETDATE(),101) AS '101',
CONVERT(VARCHAR,GETDATE(),7) AS '7',
CONVERT(VARCHAR,GETDATE(),107) AS '107',
CONVERT(VARCHAR,GETDATE(),108) AS '108',
CONVERT(VARCHAR,GETDATE(),108) AS '108',
CONVERT(VARCHAR,GETDATE(),10) AS '10',
CONVERT(VARCHAR,GETDATE(),110) AS '110',
CONVERT(VARCHAR,GETDATE(),12) AS '12',
CONVERT(VARCHAR,GETDATE(),112) AS '112',
CONVERT(VARCHAR,GETDATE(),14) AS '14',
CONVERT(VARCHAR,GETDATE(),114) AS '114'

尝试发布结果集的图片,但我需要“获得超过10个声望来发布图片”。

答案 3 :(得分:5)

Select Right(IsNull(Convert(Varchar,GetDate(),100),''),7)

答案 4 :(得分:1)

SQL可以执行内联转换

数据库中的mytime是4:15:00

SELECT CONVERT(varchar(15),  CAST(mytime AS TIME), 100) as my_time from mytable

答案 5 :(得分:0)

SQL Server不格式化时间。它是您的客户端应用程序,控制时间的显示方式。您应该更改应用程序或代码中的时间格式设置。