如何从 SQL Server 2005 日期时间以“HH:mm tt”格式获取时间部分

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/3201432/
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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 06:48:33  来源:igfitidea点击:

How to get time part from SQL Server 2005 datetime in 'HH:mm tt' format

sqltsqlsql-server-2005time

提问by Azhar

How to get time part from SQL Server 2005 datetime in HH:mm ttformat

如何以HH:mm tt格式从 SQL Server 2005 日期时间获取时间部分

E.g.

例如

11:25 AM
14:36 PM

回答by AdaTheDev

One way is:

一种方法是:

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))

If you have a look at Books Online here, format 100 is the one that has the time element in the format you want it in, it's just a case of stripping off the date from the front.

如果您在此处查看联机丛书,则格式 100 是具有您想要的格式的时间元素的格式,这只是从前面去除日期的一种情况。

回答by Andomar

You'll need two converts, one to get the HH:mm time, and one to get AM/PM. For example:

您需要两次转换,一次获得 HH:mm 时间,另一次获得 AM/PM。例如:

declare @date datetime
set @date = '20:01'
SELECT CONVERT(VARCHAR(5), @date, 108) + ' ' +
       SUBSTRING(CONVERT(VARCHAR(19), @date, 100),18,2)

This prints:

这打印:

20:01 PM

In a select query, replace @date with your column's name.

在选择查询中,将 @date 替换为您的列名。

回答by Muhammad Waqas Iqbal

SQL Server 2008

SQL Server 2008

SELECT
CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
CONVERT(DATE,GETDATE(),101) AS DateOnly
GO

Result

结果

HourMinuteSecond: 13:06:56.5770000
DateOnly:         2012-07-26

SQL Server 2000/2005

SQL Server 2000/2005

SELECT
CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond,
CONVERT(VARCHAR(8),GETDATE(),101) AS DateOnly
GO

http://blog.sqlauthority.com/2009/08/06/sql-server-get-time-in-hourminute-format-from-a-datetime-get-date-part-only-from-datetime/

http://blog.sqlauthority.com/2009/08/06/sql-server-get-time-in-hourminute-format-from-a-datetime-get-date-part-only-from-datetime/

回答by M.Mohammadi

SQL Server 2008

SQL Server 2008

SELECT
CONVERT(TIME,GETDATE()) AS HourMinuteSecond,
CONVERT(DATE,GETDATE(),101) AS DateOnly
GO

Result:

结果:

HourMinuteSecond: 13:06:56.5770000
DateOnly:         2012-07-26

SQL Server 2000/2005

SQL Server 2000/2005

SELECT
CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond,
CONVERT(VARCHAR(8),GETDATE(),101) AS DateOnly
GO

回答by test

select substring(CONVERT(VARCHAR, getdate(), 114),1,5)

resault : 22:05

结果 : 22:05

回答by Frank C

This gives you an actual datetime and not varchar

这给你一个实际的日期时间而不是 varchar

CAST(LEFT(YOURDATETIME,12) AS SMALLDATETIME) AS YOURNEWDATE

回答by manisha Richhariya

select cast(getdate() as time)) [time],

回答by Anax

You need to use CONVERTfunction:

您需要使用CONVERT功能:

CONVERT(VARCHAR, yourdatetimefiled, 114) AS [HH:MI(12H)]

回答by Salil

select right(convert(char(20),getdate(),0),7)

No check though

虽然没有检查

回答by YesOrYes

For SQL Server 2012 and above use this:

对于 SQL Server 2012 及更高版本,请使用:

SELECT Format(GetDate(), 'hh:mm tt')

SELECT Format(GetDate(), 'hh:mm tt')