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

发布于 2024-09-18 04:40:57 字数 194 浏览 4 评论 0原文

如何获取给定 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

离鸿 2024-09-25 04:41:14

您可以尝试以下代码来获取 HH:MM 格式的时间:

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

You can try the following code to get time as HH:MM format:

 SELECT CONVERT(VARCHAR(5),getdate(),108)
与之呼应 2024-09-25 04:41:13

我知道我迟到了。
但是,

A1
Convert(nvarchar, Convert(smalldatetime, getDate())) as [小日期时间],

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 毫秒

i know i m late.
but,

A1
Convert(nvarchar, Convert(smalldatetime, getDate())) as [small date time],

Aug 21 2023 9:36AM

A2 Convert(time(2), Convert(smalldatetime, getDate())) as [small time],

09:36:00.00

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

北城挽邺 2024-09-25 04:41:10
CAST(CONVERT(CHAR(8),GETUTCDATE(),114) AS DATETIME)

在 SQL Server 2008 及更高版本中

CAST(GETUTCDATE() AS TIME)
CAST(CONVERT(CHAR(8),GETUTCDATE(),114) AS DATETIME)

In SQL Server 2008 and later

CAST(GETUTCDATE() AS TIME)
酷炫老祖宗 2024-09-25 04:41:08

假设您的问题标题正确并且您想要时间:

SELECT CONVERT(char,GETDATE(),14) 

Assuming the title of your question is correct and you want the time:

SELECT CONVERT(char,GETDATE(),14) 
终止放荡 2024-09-25 04:41:06

试试这个:

SELECT CAST(DataField AS time(7)) AS 'time'

请参阅时间 (Transact-SQL)< /em>。

Try this:

SELECT CAST(DataField AS time(7)) AS 'time'

See time (Transact-SQL).

滥情空心 2024-09-25 04:41:04

对于 SQL Server,这应该可以工作

SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond

In case of SQL Server, this should work

SELECT CONVERT(VARCHAR(8),GETDATE(),108) AS HourMinuteSecond
放血 2024-09-25 04:41:02

只是要补充一点,从 SQL Server 2008 开始,有一个 TIME 数据类型,因此从那时起您可以执行以下操作:

SELECT CONVERT(TIME, GETDATE())

对于那些使用 SQL 2008+ 并找到此问题的人来说可能会有用。

Just to add that from SQL Server 2008, there is a TIME datatype so from then on you can do:

SELECT CONVERT(TIME, GETDATE())

Might be useful for those that use SQL 2008+ and find this question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文