2011-03-15 1440 views
11

我的网站在本地完美工作,但不在主机上。 我在本地写了我的MSSQL 2008查询,但我们的托管公司使用2005
任何解决方案?
编辑:使用日期时间而不是日期看起来像解决方案谢谢。 如果有人遇到这样的问题,我解决了使用此查询而不是DATE类型的问题。“类型DATE不是已定义的系统类型。”

CONVERT(VARCHAR,GETDATE(),104)输出 - > 15.03.2011

回答

17

在2008年推出了新的数据类型,它不能作为日期栏,无法在SQL Server 2005中,所以你有两个选择:

1)让您的主机公司使用SQL Server 2008(或选择另一台主机,其所做的)

2)使用日期时间列,而不是日期

+0

非常棒,我用'datetime'代替。它会给出相同的结果吗? – BNN 2015-06-26 05:13:55

1

更改您的数据库,而不是使用日期日期时间。该列类型在SQL Server 2005中受支持,而Date不是。

7
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) 
+2

其他版本'SELECT CAST(DATEDIFF(dd,0,GETDATE())AS DATETIME)' – Jaider 2012-08-30 13:37:16

0

在2005年每一次运行如上午12:00,这将允许时间维度匹配。

脱光 “时间” 使用的是这样的:

CAST(CONVERT(VARCHAR(20),enteredDate,101)为DATETIME)AS 'enterDate'

它会导致你的时间值为12:00:00 AM,这是默认值,您可以将其视为“空”。