首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlDbType.Date Server 2005

SqlDbType.Date Server 2005
EN

Stack Overflow用户
提问于 2012-08-30 17:02:45
回答 2查看 1.4K关注 0票数 2

我有这样的财产:

代码语言:javascript
复制
private SqlParameter DateOfBirthSqlParameter
{
    get
    {
        return new SqlParameter("@date", SqlDbType.Date)
            {
                Value = dateOfBirth.ToString("MM/dd/yyyy");
            };
    }
}

dateOfBirthDataTime C#类型。我使用这个参数添加到我的SQL命令中,如下所示。

代码语言:javascript
复制
Select * From mytable Where dob_dt = @date

问题是在Server 2005中不起作用。我有个例外:

System.ArgumentException:正在使用的Server版本不支持数据类型'date‘

这是因为Server 2005不支持Date,所以这是后期版本的特性( Server 2008)。

对此有许多解决方案,例如将SqlDbType.Date更改为SqlDbType.DateTime

我想参考System.Data是一个版本,它提供了Server 2008支持的所有功能。我应该把它改为只支持2005年的东西吗?这将有助于发现其他可能的错配?处理这种情况的最佳方法是什么?

谢谢。

更新: 8/31/2012

在这个例子中,我使用了出生日期,但是在我的应用程序中,我使用了其他的东西,比如purchase_dt或者类似的东西(上面有时间)。我的第一个选择声明是:

代码语言:javascript
复制
Select * From mytable Where Cast(purchase_dt as Date) = @date

在我的计算机中,使用Server 2008,在另一台带有Server 2005的PC中,也很好,当它到达select时抛出一个异常。

但是,一旦我解决了这个问题,我说:

代码语言:javascript
复制
Select * From mytable Where Cast(DATEDIFF(dd, 0, purchase_dt) as DateTime) = @date

这破坏了整个网络应用程序(在另一台电脑中).问题是SqlDbType.Date。但为什么它以前没有破坏它呢?

EN

回答 2

Stack Overflow用户

发布于 2013-07-07 11:52:29

Server 2005不支持数据类型DATE,Server 2008版本支持DATE类型。相反,您可以使用datetimesmalldate

票数 0
EN

Stack Overflow用户

发布于 2013-08-02 08:10:20

代码语言:javascript
复制
private SqlParameter DateOfBirthSqlParameter
{
    get
    {
        return new SqlParameter("@date", SqlDbType.DateTime)
            {
                Value = dateOfBirth.ToString("MM/dd/yyyy");
            };
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12201943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档