Varchar到日期和时间

时间:2014-12-17 02:14:46

标签: sql sql-server-2008 sql-server-2012

我在sql server 2012中有一列MyColumn,数据类型为Varchar(50)。它存储日期,时间和其他信息。我可以修改查询以仅生成日期和时间行,但格式有问题。

Q1)如何将结果从20141213更改为12132014。我使用下面的,它没有用。仅当MyColumn的数据类型为DATETIME或相关但Varchar的数据类型无效时,它才有效。

SELECT REPLACE(CONVERT(VARCHAR(10), MyColumn, 110),'-','') from MyTable

Q2) MyColumn将时间存储为示例0815。如何将semi-colon作为08:15包含在结果中?

请协助。 感谢。

1 个答案:

答案 0 :(得分:0)

我不建议在字符串中保存日期,可以将数据类型保存为Date或DateTime数据类型,

回答Q1是

SELECT SUBSTRING(MyColumn, 5,2) + RIGHT(MyColumn, 2) + LEFT(MyColumn, 4)

但请记住它的作品只有当您以YYYYMMDD格式刺痛并且如果您更改格式化然后错误的答案将会出现或可能会出错 和Q2的答案是

SELECT LEFT(MyColumn, 2) + ':' + RIGHT(MyColumn, 2)