Sql server 在SQL Server 2008中将字符串转换为日期时间
如何将1975年3月29日星期六00:00:00 EST格式的日期转换为TSQL格式的日期时间 我从一个旧表中获取此格式的日期,该表将出生日期列定义为Sql server 在SQL Server 2008中将字符串转换为日期时间,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,如何将1975年3月29日星期六00:00:00 EST格式的日期转换为TSQL格式的日期时间 我从一个旧表中获取此格式的日期,该表将出生日期列定义为NVARCHAR,并将数据存储为Mon-Jun-dd hh:mm:ss-GMT-yyyy格式。我需要使用此值读取另一个表,该表的dob位于datetime中 所以基本上我想把1975年3月29日星期六00:00:00东部标准时间转换成1975-03-29 00:00.000 在T-SQL中有没有方法进行这种转换?我尝试了CONVERT函数,但找不到
NVARCHAR
,并将数据存储为Mon-Jun-dd hh:mm:ss-GMT-yyyy
格式。我需要使用此值读取另一个表,该表的dob位于datetime
中
所以基本上我想把1975年3月29日星期六00:00:00东部标准时间转换成1975-03-29 00:00.000
在T-SQL中有没有方法进行这种转换?我尝试了
CONVERT
函数,但找不到要使用的正确“样式”。检查数据格式,它似乎是一个固定长度的字符串
第一部分是星期几,可以丢弃它,因为解析不需要它。接下来是我们需要的月份和日期信息。之后是时间,可以保留或放弃该时间,具体取决于您希望输出的是日期还是日期时间
由于您正在查找出生日期,因此很可能会安全地丢弃时区信息
最后是一年
如果我们去掉星期几和时区,sql server将毫无问题地解析字符串的其余部分
我建议使用cast(子字符串(@difficultTime,5,7)+子字符串(@difficultTime,25,4)作为日期)
,其中@difficultTime是要转换的列名
如果您想保留时间信息,以下格式将起作用cast(子字符串(@difficultTime,5,16)+子字符串(@difficultTime,25,4)作为日期时间)
这假设字符串的长度是固定的。显示的第一个转换从字符串中删除了星期几、时间和时区,留下了一个可解析的日期
第二次转换消除了星期几和时区,留下了一个可解析的日期时间。检查数据格式,它似乎是一个固定长度的字符串 第一部分是星期几,可以丢弃它,因为解析不需要它。接下来是我们需要的月份和日期信息。之后是时间,可以保留或放弃该时间,具体取决于您希望输出的是日期还是日期时间 由于您正在查找出生日期,因此很可能会安全地丢弃时区信息 最后是一年 如果我们去掉星期几和时区,sql server将毫无问题地解析字符串的其余部分 我建议使用
cast(子字符串(@difficultTime,5,7)+子字符串(@difficultTime,25,4)作为日期)
,其中@difficultTime是要转换的列名
如果您想保留时间信息,以下格式将起作用cast(子字符串(@difficultTime,5,16)+子字符串(@difficultTime,25,4)作为日期时间)
这假设字符串的长度是固定的。显示的第一个转换从字符串中删除了星期几、时间和时区,留下了一个可解析的日期
第二次转换消除了星期几和时区,留下了一个可解析的日期时间。检查数据格式,它似乎是一个固定长度的字符串 第一部分是星期几,可以丢弃它,因为解析不需要它。接下来是我们需要的月份和日期信息。之后是时间,可以保留或放弃该时间,具体取决于您希望输出的是日期还是日期时间 由于您正在查找出生日期,因此很可能会安全地丢弃时区信息 最后是一年 如果我们去掉星期几和时区,sql server将毫无问题地解析字符串的其余部分 我建议使用
cast(子字符串(@difficultTime,5,7)+子字符串(@difficultTime,25,4)作为日期)
,其中@difficultTime是要转换的列名
如果您想保留时间信息,以下格式将起作用cast(子字符串(@difficultTime,5,16)+子字符串(@difficultTime,25,4)作为日期时间)
这假设字符串的长度是固定的。显示的第一个转换从字符串中删除了星期几、时间和时区,留下了一个可解析的日期
第二次转换消除了星期几和时区,留下了一个可解析的日期时间。检查数据格式,它似乎是一个固定长度的字符串 第一部分是星期几,可以丢弃它,因为解析不需要它。接下来是我们需要的月份和日期信息。之后是时间,可以保留或放弃该时间,具体取决于您希望输出的是日期还是日期时间 由于您正在查找出生日期,因此很可能会安全地丢弃时区信息 最后是一年 如果我们去掉星期几和时区,sql server将毫无问题地解析字符串的其余部分 我建议使用
cast(子字符串(@difficultTime,5,7)+子字符串(@difficultTime,25,4)作为日期)
,其中@difficultTime是要转换的列名
如果您想保留时间信息,以下格式将起作用cast(子字符串(@difficultTime,5,16)+子字符串(@difficultTime,25,4)作为日期时间)
这假设字符串的长度是固定的。显示的第一个转换从字符串中删除了星期几、时间和时区,留下了一个可解析的日期
第二次转换消除了星期几和时区,留下了一个可解析的datetime。一旦您知道如何转换它,我强烈建议您将数据类型更改为datetime。将您的数据存储在适当的数据类型中会使事情变得更容易处理