Sql 如何将nvarchar转换为时间,而不是日期时间?
Sql 如何将nvarchar转换为时间,而不是日期时间?,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,结果:1900-01-01 12:30:00.000(我不想要这个) 但我需要的是时间格式的结果,不是字符串,不是日期时间? 结果:12:30(我想要这个)您可以使用该函数 顺便说一下,SQL Server中没有“时间”数据类型。因此,转换后的结果将始终是字符串 编辑:SQL Server版本中没有“时间”数据类型您可以使用该函数 顺便说一下,SQL Server中没有“时间”数据类型。因此,转换后的结果将始终是字符串 编辑:在SQL Server版本中没有“时间”数据类型在SQL Server
结果:1900-01-01 12:30:00.000(我不想要这个)
但我需要的是时间格式的结果,不是字符串,不是日期时间?
结果:12:30(我想要这个)您可以使用该函数 顺便说一下,SQL Server中没有“时间”数据类型。因此,转换后的结果将始终是字符串 编辑:SQL Server版本中没有“时间”数据类型
您可以使用该函数
顺便说一下,SQL Server中没有“时间”数据类型。因此,转换后的结果将始终是字符串
编辑:在SQL Server版本中没有“时间”数据类型在SQL Server 2008中有一个类型,但在以前的版本中,可以将其表示为varchar以供显示
这就是如何以所需格式检索DATETIME字段的时间部分
DECLARE @DateNow smalldatetime
SET @DateNow='12:30'
select @DateNow
-------------------------------------OR--------------------------------------
select CAST( '12:30' as datetime )
SQLServer2008中有一个类型,但在以前的版本中,可以将其表示为varchar以供显示
这就是如何以所需格式检索DATETIME字段的时间部分
DECLARE @DateNow smalldatetime
SET @DateNow='12:30'
select @DateNow
-------------------------------------OR--------------------------------------
select CAST( '12:30' as datetime )
如果需要比较、添加和/或减去时间(仅限)值,请考虑使用INT存储“时间”值,然后在显示结果时将其转换为CHAR。如果需要比较、添加和/或减去时间(仅限)值,考虑使用INT存储“TIME”值,然后在显示结果时将其转换为CHAR的可能性。如José所说,您可以使用CONVERT将datetime显示为date。MSDN有一个所有的列表。例如,格式8是hh:mi:ss:
DECLARE @DateNow smalldatetime
SET @DateNow = GETDATE() -- 2009-05-08 12:58:02.680
SELECT CONVERT(CHAR(5), @DateNow, 8)
-- this returns the time portion as 12:58
现在,您可以通过指定更少的字符来缩短秒数:
select convert(varchar(32),getdate(),8)
12:51:21
另一种常用的格式是121,yyyy-mm-dd-hh:mi:ss.mmm(24小时):
您可以在其中选择时间部分,如:
select convert(varchar(32),getdate(),121)
2009-05-08 12:51:21.987
或者结合字符串技巧:
select substring(convert(varchar(32),getdate(),121),12,5)
12:51
对吧??对! 正如José所说,您可以使用CONVERT将日期时间显示为日期。MSDN有一个所有的列表。例如,格式8是hh:mi:ss:
DECLARE @DateNow smalldatetime
SET @DateNow = GETDATE() -- 2009-05-08 12:58:02.680
SELECT CONVERT(CHAR(5), @DateNow, 8)
-- this returns the time portion as 12:58
现在,您可以通过指定更少的字符来缩短秒数:
select convert(varchar(32),getdate(),8)
12:51:21
另一种常用的格式是121,yyyy-mm-dd-hh:mi:ss.mmm(24小时):
您可以在其中选择时间部分,如:
select convert(varchar(32),getdate(),121)
2009-05-08 12:51:21.987
或者结合字符串技巧:
select substring(convert(varchar(32),getdate(),121),12,5)
12:51
对吧??对! SQL Server中没有只保存日期时间部分的数据类型。你想达到什么目的?@ykaratoprak-请看我的答案,让我知道这对你是否有效。你是如何解决这个问题的?似乎这个问题还没有找到它想要的答案。每个人都在发布关于时间部分过期的帖子。没有人解决“将字符串转换为时间或日期时间”部分:)SQL Server中没有数据类型仅保存日期的时间部分。你想达到什么目的?@ykaratoprak-请看我的答案,让我知道这对你是否有效。你是如何解决这个问题的?似乎这个问题还没有找到它想要的答案。每个人都在发布关于时间部分过期的帖子。没有人回答过“将字符串转换为时间或日期时间”部分:)+1发布了另一个答案来详细解释您的字符(5)技巧:)+1发布了另一个答案来详细解释您的字符(5)技巧:)