Sql server 计算柱公式

Sql server 计算柱公式,sql-server,formula,calculated-columns,Sql Server,Formula,Calculated Columns,我用以下公式创建了一个计算列: (CONVERT([datetime],(CONVERT([varchar],[TradeDate])+' ')+CONVERT([varchar],[TradeTime]))) 但当我保存表格时,公式会自动更改为: (CONVERT([datetime],(CONVERT([varchar],[TradeDate],0)+' ')+CONVERT([varchar],[TradeTime],0),0)) 因此,它导致了这个问题: 假设TradeDate是:2

我用以下公式创建了一个计算列:

(CONVERT([datetime],(CONVERT([varchar],[TradeDate])+' ')+CONVERT([varchar],[TradeTime])))
但当我保存表格时,公式会自动更改为:

(CONVERT([datetime],(CONVERT([varchar],[TradeDate],0)+' ')+CONVERT([varchar],[TradeTime],0),0))
因此,它导致了这个问题:

假设
TradeDate
是:
2012-08-13
TradeTime
是:
10:29:59.0000000

由于更改了公式,它没有显示
2012-08-13 10:29:59.000
,而是显示
2012-08-13 10:29:00.000


解决方案是什么?

只需使用
(CONVERT([datetime],[TradeDate],0)+CONVERT([datetime],[TradeTime],0))
SQL Server将
0
添加到转换表达式中,因为这是以
mon dd yyyy hh:mim(或PM)

convert函数中的第三个参数表示样式。因此
0或100
表示默认样式。因此,您可以在创建计算列时指定样式


您的
TradeDate
TradeTime
列的数据类型是什么?另外:当转换为
VARCHAR
时,您应该始终为
VARCHAR(x)
结果定义一个长度!还有:您使用的是什么版本的SQL Server(2000、2005、2008、2008 R2、2012)?TradeDate是日期,TradeTime是时间(7)。SQL Server 2008 R2