在 SQL 中将时间转换为 12 小时格式
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4745527/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Converting a time into 12 hour format in SQL
提问by Nithesh Narayanan
How can i convert 24
hour formatted time into 12
hour formatted time in SQL server 2008?
如何在 SQL Server 2008 中将24
小时格式的时间转换为12
小时格式的时间?
回答by Damien_The_Unbeliever
Do you have the current time in a variable/column of type time? If so, it's easy:
您是否在时间类型的变量/列中有当前时间?如果是这样,这很容易:
declare @t time
set @t = '14:40'
select CONVERT(varchar(15),@t,100)
result:
结果:
2:40PM
If it's in a datetime(2)
variable, then you'll have to strip out the date portion after running the CONVERT. If it's in a string, then first CONVERT
it to time
, then use the above code.
如果它在一个datetime(2)
变量中,那么你必须在运行CONVERT后去掉日期部分。如果它在一个字符串中,那么首先将CONVERT
它转换为time
,然后使用上面的代码。
回答by rAdmin
Sometimes you need to do it inline:
有时你需要内联:
SELECT CONVERT(varchar(15), CAST(GETDATE() AS TIME), 100) as AmPmTime
回答by Jonny Lawrence
To add to rAdmin's comment, the syntax is:
要添加到 rAdmin 的评论中,语法为:
CONVERT(data_type,expression,style_code)
Here are some other style codes you can use:
以下是您可以使用的其他一些样式代码:
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'
Tried to post an image of the result set, but I need to "Earn more than 10 reputation to post images".
试图发布结果集的图像,但我需要“获得超过 10 个声誉才能发布图像”。
回答by Santhosh VS
Select Right(IsNull(Convert(Varchar,GetDate(),100),''),7)
回答by FARHAN KHAN
SQL can perform inline conversion for time
SQL可以对时间进行内联转换
mytime in database is 4:15:00
我在数据库中的时间是 4:15:00
SELECT CONVERT(varchar(15), CAST(mytime AS TIME), 100) as my_time from mytable
回答by nvogel
SQL Server doesn't format the time. It's your client application that controls how the time is displayed. You should change the time format settings in your application or your code.
SQL Server 不会格式化时间。您的客户端应用程序控制着时间的显示方式。您应该更改应用程序或代码中的时间格式设置。