【发布时间】:2019-04-14 16:35:06
【问题描述】:
您好,我正在使用 SQL Server,我有这个专栏:
data
6/19/2019 3:10:12 PM
12/23/2016 5:02:15 AM
我只想提取时间,所以我使用了以下查询:
select try_parse([data] as time using 'en-US') from Table_1
但问题是我得到了这样的结果:
15:10:12.0000000
05:02:15.0000000
除了 0 我的意思是我想得到之外一切都好:
15:10:12
05:02:15
非常感谢您的帮助!
【问题讨论】:
-
time有一个刻度。试试time(0)。另一方面,您为什么将日期存储为varchar而不是datetime或datetime2?此外,TRY_PARSE和time是在 SQL Server 2012 中引入的,但是,您是否标记了 SQL Server 2008 和 2005? -
在继续之前,您应该花一些时间来了解数据类型。同样重要的是要了解这种格式通常最好在“表示层”中实现。如果这是用于报告或应用程序,则在其中格式化,而不是在数据库中。
-
您可以将列转换为时间,如下所示。我假设列“数据”是日期数据类型。如果是,则从 table_1 中选择 cast(data as time)
标签: sql sql-server database sql-server-2008 sql-server-2005