sql结合两列,其中一列是日期时间

时间:2013-04-25 12:53:37

标签: sql sql-server-2008 datetime

我有以下sql代码(ms sql server 2008)

select (analysisno + ' ' + '-' + ' ' + description + ' ' + '-' + ' ' + formdate) as columnA 
来自Old_Analysis_Data的

按表格命令

我从字符串转换日期和/或时间时出现以下错误转换失败。

AnalysisNo是一个varchar(10) 描述是一个varchar(500) formdate是一个日期时间 (不是我的桌子,它是旧桌子)

任何想法,都无法在谷歌上找到答案。

3 个答案:

答案 0 :(得分:1)

在连接之前使用转换将时间转换为字符串:

SELECT ( analysisno + ' ' + '-' + ' ' + description + ' ' + '-' + ' ' 
     + CONVERT(VARCHAR(20), formdate, 100) ) AS columnA 
FROM 
     Old_Analysis_Data 
ORDER BY 
     formdate

在这种情况下,100是一种将日期戳格式设置为mon dd yyyy hh:miAM(或PM)的样式

请参阅http://www.w3schools.com/sql/func_convert.asp

答案 1 :(得分:0)

试试这个:

select (analysisno + ' - ' + description + ' - ' 
+ convert(varchar(100),formdate)) as columnA
from Old_Analysis_Data order by formdate

答案 2 :(得分:0)

不是直接连接formdate,而是先将其转换为字符串,

convert(varchar(15), formdate, 103)

,它提供以下格式

dd/MM/yyyy