Sql server 如何从varchar获取日期
检索我想要的数据时遇到问题。我有一个包含各种信息的Varchar列。我只想从该栏中提取日期。然而,我一直不成功。我使用了下面的SQL(2008)来获取下面的数据,但是我似乎不能只获取日期而不获取时间。显然,日期和时间处于不同的位置。希望你能帮忙Sql server 如何从varchar获取日期,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,检索我想要的数据时遇到问题。我有一个包含各种信息的Varchar列。我只想从该栏中提取日期。然而,我一直不成功。我使用了下面的SQL(2008)来获取下面的数据,但是我似乎不能只获取日期而不获取时间。显然,日期和时间处于不同的位置。希望你能帮忙 SELECT substring(Data, 8, 17) from mastInfo 9/25/2013 12:36:5 Jul 8 2013 11:40 9/25/2013 12:43:5 如果要将其转换为日期时间,请使用: SEL
SELECT substring(Data, 8, 17)
from mastInfo
9/25/2013 12:36:5
Jul 8 2013 11:40
9/25/2013 12:43:5
如果要将其转换为日期时间,请使用:
SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime
如果你想得到时间:
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), '2011-09-28 18:01:00', 100), 7))
如果您想要日期部分:
SELECT CONVERT (DATE, GETDATE())
如果要将其转换为日期时间,请使用:
SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime
如果你想得到时间:
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), '2011-09-28 18:01:00', 100), 7))
如果您想要日期部分:
SELECT CONVERT (DATE, GETDATE())
什么版本的sql server 你能试试这个吗 选择转换(日期,子字符串(数据,8,17))
从mastInfo查看sql server的哪个版本 你能试试这个吗 选择转换(日期,子字符串(数据,8,17))
从mastInfo如果您使用的是SQL Server 2012或更高版本,则可以使用 这是我的建议 下面是一个示例(来自上面的SQLFIDLE): 结果如下:
DATEASDATETIME DATEASSTRING
September, 25 2013 12:36:05+0000 9/25/2013 12:36:5
September, 25 2013 12:43:05+0000 9/25/2013 12:43:5
July, 08 2013 11:40:00+0000 Jul 8 2013 11:40
如果您使用的是SQL Server 2012或更新版本,则可以使用 这是我的建议 下面是一个示例(来自上面的SQLFIDLE): 结果如下:
DATEASDATETIME DATEASSTRING
September, 25 2013 12:36:05+0000 9/25/2013 12:36:5
September, 25 2013 12:43:05+0000 9/25/2013 12:43:5
July, 08 2013 11:40:00+0000 Jul 8 2013 11:40
因为您是从字符串开始的,所以它可能不代表有效日期。当字符串可以转换为日期时,使用IsDate函数将返回1。基本上,这段代码会将那些可以转换的值转换为日期,对于那些不能转换为有效日期的值,会返回NULL
因为您是从字符串开始的,所以它可能不代表有效日期。当字符串可以转换为日期时,使用IsDate函数将返回1。基本上,这段代码会将那些可以转换的值转换为日期,对于那些不能转换为有效日期的值,它会返回NULL。首先将Varchar转换为DateTime,然后再以所需的日期格式(如101102103)将其转换为Varchar 试试这个:
select convert(varchar(50),convert(datetime,'9/25/2013 12:43:5'),101)
首先将Varchar转换为DateTime,然后再将其转换为所需的日期格式,如101102103 试试这个:
select convert(varchar(50),convert(datetime,'9/25/2013 12:43:5'),101)
我正在使用SQLServer2008。执行此操作时,会出现以下错误:“从字符串转换日期和/或时间时转换失败。”听起来像是解析问题?子字符串(数据,8,17)是否总是返回日期?我使用的是SQL Server 2008。执行此操作时,会出现以下错误:“从字符串转换日期和/或时间时转换失败。”听起来像是解析问题?子字符串(数据,8,17)是否总是返回日期?我实际使用的是SQl 2008。我实际使用的是SQl 2008。我仍然收到以下消息:“从字符串转换日期和/或时间时,转换失败。”。我相信我尝试了很多方法来获取这些数据,但这似乎是不可能的。我很抱歉,但是我的括号放错了位置。请再试一次。顺便说一下,我刚刚在一个SQL-2008实例上测试了它,它按照您希望的方式工作。此代码检查字符串是否可以在转换之前进行转换(类似于仅适用于SQL-2012(及更高版本)的try_convert答案)。我仍然收到以下消息:“从字符串转换日期和/或时间时,转换失败。”。我相信我尝试了许多方法来获取此数据,但似乎不可能。很抱歉,我的右括号位置错误。请重试。顺便说一句,我刚刚在SQL-2008实例上测试了此方法,结果是这样的这段代码检查字符串在转换之前是否可以转换(类似于仅适用于SQL-2012(及更高版本)的try_convert答案)。