使用 T-SQL 获取日期时间的时间
如何获取给定 datetime
值的时间?
我在数据库中有一个像这样的日期时间:
2010-09-06 17:07:28.170
并且只想要时间部分:
17:07:28.170
是否有相应的函数或其他功能?
How can I get the time for a given datetime
value?
I have a datetime
in database like this:
2010-09-06 17:07:28.170
and want only the time portion:
17:07:28.170
Is there a function for that or something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
您可以尝试以下代码来获取 HH:MM 格式的时间:
You can try the following code to get time as HH:MM format:
我知道我迟到了。
但是,
A1
Convert(nvarchar, Convert(smalldatetime, getDate())) as [小日期时间],
A2
Convert(time(2), Convert(smalldatetime, getDate())) as [small time],
ps,Convert(time(x), GetDate()) 其中 x >= 0 且 x =< 7
编辑,
是的,所以,根据下面的评论,我可以理解我的答案可能与上面的一些答案相似。
第一个代码 A1 将给定日期转换为已提供的 nvarchar,上面具有不同的类型 (smalldatetime),它应该返回比 datetime 和 datetime2 更短的值,
其中第二个代码 A2 将给定日期转换为时间,使用 (2) 作为毫秒,而不是默认值 (6),显示范围为 0 到 7 毫秒
i know i m late.
but,
A1
Convert(nvarchar, Convert(smalldatetime, getDate())) as [small date time],
A2
Convert(time(2), Convert(smalldatetime, getDate())) as [small time],
ps, Convert(time(x), GetDate()) where x >= 0 and x =< 7
EDIT,
right, so, following up with the comment below i can understand how my answer might look similar to some of the answers above.
The first code A1 converts the given date to nvarchar which is already been provided, above with different type (smalldatetime) which should return a shorter value than both datetime, and datetime2
Where the second code A2 converts the given date to time with (2) as the milliseconds instead of the default (6), which can range between 0 and 7 milliseconds displayed
在 SQL Server 2008 及更高版本中
In SQL Server 2008 and later
假设您的问题标题正确并且您想要时间:
Assuming the title of your question is correct and you want the time:
试试这个:
请参阅时间 (Transact-SQL)< /em>。
Try this:
See time (Transact-SQL).
对于 SQL Server,这应该可以工作
In case of SQL Server, this should work
只是要补充一点,从 SQL Server 2008 开始,有一个 TIME 数据类型,因此从那时起您可以执行以下操作:
对于那些使用 SQL 2008+ 并找到此问题的人来说可能会有用。
Just to add that from SQL Server 2008, there is a TIME datatype so from then on you can do:
Might be useful for those that use SQL 2008+ and find this question.