从日期开始获取小时和分钟(HH:MM)

时间:2013-01-17 08:25:11

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

我想从日期开始只获得hh:mm

我怎么能得到这个?

我试过这个:

CONVERT(VARCHAR(8), getdate(), 108)

请帮帮我。

9 个答案:

答案 0 :(得分:53)

只需使用前5个字符......?

 SELECT CONVERT(VARCHAR(5),getdate(),108) 

答案 1 :(得分:20)

您可以轻松使用Format()函数代替sql 2012及更高版本的所有强制转换

SELECT FORMAT(GETDATE(),'hh:mm')

这是执行所需转换的最佳方式。

答案 2 :(得分:9)

使用DATEPART内置函数的另一种方法:

SELECT cast(DATEPART(hour, GETDATE()) as varchar) + ':' + cast(DATEPART(minute, GETDATE()) as varchar)

答案 3 :(得分:1)

以下在2008R2 +上工作以生成“ HH:MM”:

select
case
when len(replace(replace(replace(right(cast(getdate() as varchar),7),'AM',''),'PM',''),' ','')) = 4
then '0'+ replace(replace(replace(right(cast(getdate() as varchar),7),'AM',''),'PM',''),' ','')
else replace(replace(replace(right(cast(getdate() as varchar),7),'AM',''),'PM',''),' ','') end as [Time]

答案 4 :(得分:0)

以下是显示SELECT语句中字段的小时和分钟的语法。在此示例中,SQL字段名为“UpdatedOnAt”并且是DateTime。使用MS SQL 2014进行测试。

SELECT Format(UpdatedOnAt ,'hh:mm') as UpdatedOnAt from MyTable

我喜欢将星期几显示为3个字母缩写的格式,并包含秒:

SELECT Format(UpdatedOnAt ,'ddd hh:mm:ss') as UpdatedOnAt from MyTable

“as UpdatedOnAt”后缀是可选的。它会为您提供一个与您选择开始的字段相等的列标题。

答案 5 :(得分:0)

以下代码在“小时:分钟”列中为我们显示了当前小时和分钟。

SELECT  CONVERT(VARCHAR(5), GETDATE(), 108) + 
(CASE WHEN DATEPART(HOUR, GETDATE()) > 12 THEN ' PM'
    ELSE ' AM'
END) 'Hour:Minutes'

SELECT  Format(GETDATE(), 'hh:mm') + 
(CASE WHEN DATEPART(HOUR, GETDATE()) > 12 THEN ' PM'
    ELSE ' AM'
END) 'Hour:Minutes'

答案 6 :(得分:0)

如果要显示24小时格式,请使用:

SELECT FORMAT(GETDATE(),'HH:mm')

并显示12小时格式,请使用:

SELECT FORMAT(GETDATE(),'hh:mm')

答案 7 :(得分:0)

您可以将日期时间转换为时间

select CAST(GETDATE() as time)

如果您想要hh:mm格式

select cast(CAST(GETDATE() as time) as varchar(5))

答案 8 :(得分:0)

TO_CHAR(SYSDATE, 'HH') 我用它来获取 apex PL/SQL 中的当前小时