如何将此查询结果转换为日期格式(SQL Server)

时间:2016-09-08 04:18:18

标签: sql sql-server

例如:

concat (concat('201', (substring('A41020', 2, 1)), '-', (substring('B210906', 6, 2))

,结果是2014-06。

我可以使用哪些附加查询在检索数据时将此字符串(2014-06)更改为日期格式?

现在,当我使用此查询中的数据时,我必须在Excel中更改单元格格式。

帮助我掌握

2 个答案:

答案 0 :(得分:1)

使用以下查询。我将日期设置为01,您可以根据自己的要求进行更改。在这种情况下,您也可以使用CONVERT或CAST功能。

SELECT CONVERT(datetime,'201'+substring('A41020', 2, 1)+'-'+substring('B210906', 6, 2)+'-01')

OR

SELECT CAST(('201'+substring('A41020', 2, 1)+'-'+substring('B210906', 6, 2)+'-01')as  datetime)

enter image description here

答案 1 :(得分:0)

如果它是您要转换的表格列:

  CONVERT(DATETIME,[Your-column]) 

如果要转换选择查询的结果:

  CONVERT(DATETIME,[select query])

当您尝试将字符串转换为日期时间时,字符串应包含年,月和日期,否则您将需要附加缺少的字符串。

在您的情况下,您的结果为2014-06,但缺少日期部分。如果您尝试转换此内容,则会出现转换错误。 您可以通过添加日期部分来转换上述字符串。

select convert(datetime,'2014-06-01');

它将给出如下结果:

Output