【问题标题】:Why am I not able to insert a NULL into a nullable DATE column in SQL Server 2008?为什么我无法在 SQL Server 2008 中将 NULL 插入到可为空的 DATE 列中?
【发布时间】:2012-06-06 21:38:16
【问题描述】:

我使用的是 SQL Server 2008r2。

我有一个表,其列定义为:

TheDate date null

当我尝试在此列中插入 NULL 值时,我收到错误消息:“操作数类型冲突:int 与日期不兼容”。

如果我将数据类型更改为日期时间,它可以正常工作。

为什么这不适用于日期数据类型?

谢谢。

编辑:拉马克是对的:

我的插入语句使用 select 语句作为源,源表是使用“select into”临时表语句创建的,显然,由于表是动态定义的,因此为该列分配了“int”插入 null 时的数据类型。

【问题讨论】:

  • 请向我们展示您的插入语句。
  • 我觉得这里有很多话没说。
  • 我尽量不要将五页代码粘贴到一个问题中。
  • “如果我将其更改为 datetime 就可以正常工作,为什么它不适用于日期类型”。嗯?

标签: sql-server sql-server-2008


【解决方案1】:

您不只是插入NULL,而是插入数据类型为INTNULL。改为插入:CAST(NULL AS DATE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多