如何获取给定
datetime
值的时间?
我在数据库中有一个
datetime
,如下所示:
2010-09-06 17:07:28.170
并且只想要时间部分:
17:07:28.170
有这样的功能吗?
补充一下,从 SQL Server 2008 开始,有一个 TIME 数据类型,因此从那时起您可以执行以下操作:
SELECT CONVERT(TIME, GETDATE())
对于那些使用 SQL 2008+ 并发现这个问题的人可能有用。
对于 SQL Server,这应该可行
SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond
假设您的问题标题正确并且您想要时间:
SELECT CONVERT(char,GETDATE(),14)
CAST(CONVERT(CHAR(8),GETUTCDATE(),114) AS DATETIME)
在 SQL Server 2008 及更高版本中
CAST(GETUTCDATE() AS TIME)
您可以尝试以下代码来获取 HH:MM 格式的时间:
SELECT CONVERT(VARCHAR(5),getdate(),108)
我知道我迟到了。 但是,
A1
Convert(nvarchar, Convert(smalldatetime, getDate())) as [small date time],
2023 年 8 月 21 日上午 9:36
A2
Convert(time(2), Convert(smalldatetime, getDate())) as [small time],
09:36:00.00
ps, Convert(time(x), GetDate()) 其中 x >= 0 且 x =< 7
编辑, 是的,所以,按照下面的评论,我可以理解我的答案可能与上面的一些答案相似。
第一个代码A1将给定日期转换为已经提供的nvarchar,上面具有不同的类型(smalldatetime),它应该返回比datetime和datetime2更短的值
第二个代码A2将给定日期转换为时间(2)作为毫秒,而不是默认值(6),其显示范围可以在0到7毫秒之间