【问题标题】:Inserting datetime value into sql server table column将日期时间值插入 sql server 表列
【发布时间】:2013-08-30 21:07:38
【问题描述】:

我正在尝试将datetime('2013-08-30 19:05:00') 值插入到 SQL Server 数据库表列 (smalldatetime) 中,插入后该值保持为“NULL”。

我正在对其他 6 个完全相同类型的列执行此操作。这仅发生在一列上是什么?我已经三重检查了列的名称是否正确。有什么想法吗?

【问题讨论】:

  • 您是否尝试使sql列成为timestamp timestamp default current_timestamp?无论如何,您的问题不够具体,请发布代码,向我们展示失败的原因。
  • 第一个想法是发布您的代码,并提供有关表格的更多详细信息。
  • 同时检查表上的触发器。
  • @Martin - 你说检查触发器是正确的,它缺少新的日期列。谢谢!

标签: sql-server-2008


【解决方案1】:

假设情况如您所描述的那样

CREATE TABLE T
(
S SMALLDATETIME NULL
)

INSERT INTO T 
VALUES('2013-08-30 19:05:00')

SELECT *
FROM T /*Returns NULL*/

我能想到的只有两种方法可以发生这种情况。

1) 这是一种模棱两可的日期时间格式。在错误的会话选项下,这将无法正确转换,如果您有一些其他选项OFF,它将返回NULL,而不是引发错误(例如)

SET LANGUAGE Italian;
SET ansi_warnings OFF;
SET arithabort OFF; 

INSERT INTO T 
VALUES('2013-08-30 19:05:00')

SELECT *
FROM T /*NULL inserted*/

2) 您可能错过了 INSTEAD OF 触发器中的列,或者有一个 AFTER 触发器实际上将值设置回 NULL

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 2011-10-31
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    相关资源
    最近更新 更多