使用T-SQL获取日期时间?

gra*_*ady 62 t-sql sql-server datetime sql-server-2000

如何获得给定datetime值的时间?

我有一个datetime像这样的数据库:

2010-09-06 17:07:28.170
Run Code Online (Sandbox Code Playgroud)

并且只想要时间部分:

17:07:28.170
Run Code Online (Sandbox Code Playgroud)

有什么功能吗?

Ada*_*Dev 93

只是为了从SQL Server 2008添加它,有一个TIME数据类型,所以从那时起你可以做:

SELECT CONVERT(TIME, GETDATE())
Run Code Online (Sandbox Code Playgroud)

对于那些使用SQL 2008+并找到这个问题的人来说可能很有用.

  • 这是一个很好的答案.@grady你应该接受这个或要求更多信息. (3认同)
  • @DaveBoltman - 同意你的观点:不是接受的答案.但是,我确实发现投票推理+ downvote苛刻.虽然不是针对SQL 2000的确切问题,但它对于更高版本仍然相关(并且正确).随着问题变得越来越老,它越来越相关,正如投票所表明的那样.如果这有很多负面投票,它会错误地表明它是错误的.现在搜索的人很可能(希望!)> 2000 (3认同)

Jag*_*mag 19

在SQL Server的情况下,这应该工作

SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond
Run Code Online (Sandbox Code Playgroud)


Mic*_*ins 10

假设你的问题的标题是正确的,你想要时间:

SELECT CONVERT(char,GETDATE(),14) 
Run Code Online (Sandbox Code Playgroud)

编辑包括毫秒.


Sim*_*mmo 5

CAST(CONVERT(CHAR(8),GETUTCDATE(),114) AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2008+中

CAST(GETUTCDATE() AS TIME)
Run Code Online (Sandbox Code Playgroud)