问题
How to get time part from SQL Server 2005 datetime in HH:mm tt format
E.g.
11:25 AM
14:36 PM
回答1:
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.
回答2:
You'll need two converts, one to get the HH:mm time, and one to get AM/PM. For example:
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.
回答3:
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
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/
回答4:
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
SELECT
CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond,
CONVERT(VARCHAR(8),GETDATE(),101) AS DateOnly
GO
回答5:
select substring(CONVERT(VARCHAR, getdate(), 114),1,5)
resault : 22:05
回答6:
You need to use CONVERT function:
CONVERT(VARCHAR, yourdatetimefiled, 114) AS [HH:MI(12H)]
回答7:
select cast(getdate() as time)) [time],
回答8:
This gives you an actual datetime and not varchar
CAST(LEFT(YOURDATETIME,12) AS SMALLDATETIME) AS YOURNEWDATE
回答9:
select right(convert(char(20),getdate(),0),7)
No check though
来源:https://stackoverflow.com/questions/3201432/how-to-get-time-part-from-sql-server-2005-datetime-in-hhmm-tt-format