41

我只想hh:mm从日期开始。

我怎么能得到这个?

我试过这个:

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

9 回答 9

80

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

 SELECT CONVERT(VARCHAR(5),getdate(),108) 
于 2013-01-17T08:27:59.053 回答
39

您可以轻松地使用 Format() 函数,而不是仅适用于 sql 2012 及更高版本的所有转换

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

这是迄今为止进行所需转换的最佳方式。

于 2015-12-28T13:48:38.630 回答
14

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

SELECT cast(DATEPART(hour, GETDATE()) as varchar) + ':' + cast(DATEPART(minute, GETDATE()) as varchar)
于 2013-01-17T08:55:44.090 回答
8

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

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

并显示 12 小时格式使用:

SELECT FORMAT(GETDATE(),'hh:mm')
于 2019-11-28T11:52:58.593 回答
1

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

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'
于 2019-07-10T04:58:09.363 回答
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]
于 2020-01-23T10:59:28.737 回答
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”后缀是可选的。它为您提供了一个与您选择开始的字段相同的列标题。

于 2018-05-20T00:33:04.757 回答
0

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

select CAST(GETDATE() as time)

如果你想要一个 hh:mm 格式

select cast(CAST(GETDATE() as time) as varchar(5))
于 2020-11-14T02:43:57.540 回答
0

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

于 2021-08-04T05:58:16.960 回答