如何在SQLServer2008中将字符串日期转换为有效的日期格式?
我有如何在SQLServer2008中将字符串日期转换为有效的日期格式?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有yymmdd格式的字符串日期,例如150202 我想将此字符串转换为格式为yyyymmdd的有效日期,例如20150202 提前感谢。将字符串转换为datetime,然后使用它执行您想要的操作 declare @dt varchar(6) = '150213' select CONVERT(datetime, @dt, 112) 执行另一个CONVERT将其转换为yyyymmdd格式 SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, @dt, 1
yymmdd
格式的字符串日期,例如150202
我想将此字符串转换为格式为yyyymmdd
的有效日期,例如20150202
提前感谢。将字符串转换为datetime,然后使用它执行您想要的操作
declare @dt varchar(6) = '150213'
select CONVERT(datetime, @dt, 112)
执行另一个
CONVERT
将其转换为yyyymmdd
格式
SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, @dt, 112), 112)
希望这能奏效
select CONVERT(datetime, '150202', 112)
对于所有日期转换
而不是选择转换(日期时间,'150202',112)
最好使用“选择TRY_CONVERT(日期时间,'150202',112)”
使用try_convert时,如果出现任何错误,它将返回null;如果使用convert,当转换失败时,它将返回错误。您将如何确定是2015年还是1915年?在询问之前,您是否进行了一些研究?测试了一些代码?这是一个非常常见的问题,您在SO中有很多示例。SQL Server
DATE
或DATETIME2(n)
没有任何与它们相关的格式-它们通过键入日期以二进制形式存储,因为字符串是一种不好的做法。。你可以在这里读到更多:我同意@Deepshikha。如果您知道150202的意思是20150202,只需输入“20”和“150202”,然后将此字符串转换为日期格式,您测试了它吗将varchar数据类型转换为datetime数据类型导致值超出范围。
@wewewesthemenace:对我来说效果很好(SQL Server 2014-美国英语)@wewewesthemenace,我改进了我的答案,我对字符串使用了“yyddmm”格式。这是‘yymmdd’now@marc_s,编辑前为151302
@阿什,谢谢@mohan111,它以varchar的形式出现,输出为datetime,可以以多种格式显示