微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将varchar数据类型转换为smalldatetime数据类型导致超出范围的值

如何解决将varchar数据类型转换为smalldatetime数据类型导致超出范围的值

| 我正在使用sql server 2008 NHIbernate并运行这段代码   从[Time] time0_中选择time0 _。[Date]作为Date2_8_,time0_.Hours作为Hours8_,time0_.AuthorizedDate作为Authoriz7_8_,time0_.AuthorizedBy作为Authoriz9_8_其中(UserID = \'4 \')AND(Date = \'5/26 / 2011 12:00:00 AM \')   给我错误信息:      {\“将varchar数据类型转换为smalldatetime数据类型会导致超出范围的值。”“” NHibernate的Date和AuthorizedDate:
<property name=\"Date\" type=\"DateTime\">
        <column name=\"`Date`\" length=\"4\" sql-type=\"smalldatetime\" not-null=\"true\"/>
    </property>
<property name=\"authorizedDate\" type=\"DateTime\" access=\"field\">
        <column name=\"AuthorizedDate\" length=\"4\" sql-type=\"smalldatetime\" not-null=\"false\"/>
    </property>
但是,如果我使用一段sql并从sql management studio中运行它,它将运行没有问题。 sql服务器的DateTime格式为英语(US),我的计算机的datetime格式也为英语(US)。 我尝试了错误:将nvarchar数据类型转换为smalldatetime数据类型会导致超出范围的值,而将varchar数据类型转换为datetime数据类型会导致超出范围的值。但是无法解决我的问题。 有什么想法可能导致此问题吗?     

解决方法

        为什么用这种方式映射它? 您可以尝试简单地将其映射:
<property name=\"Date\" not-null=\"true\" />
也尝试删除
length=\"4\"
更新 这里是一些文档:NHibernate中的日期/时间支持   DbType.DateTime映射到日期时间   (或smalldatetime)SQL类型 因此,我认为不需要在映射文件中指定它。 但是我认为这里的基本问题是日期格式。如果我在SSMS中使用\'5/26/2011 12:00:00 AM \'在本地尝试,我的查询会正确返回,但是如果我尝试\ '26 / 5/2011 12:00:00 AM \',则错误:   varchar数据类型的转换   转换为日期时间数据类型会导致   超出范围的值。 您是否尝试过在应用程序中设置本地化?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。