Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 垃圾值显示在列中,而不是默认值_Sql_Sql Server - Fatal编程技术网

Sql 垃圾值显示在列中,而不是默认值

Sql 垃圾值显示在列中,而不是默认值,sql,sql-server,Sql,Sql Server,我有一个名为From\u date和to\u date的列。列的默认约束分别为getdate()和9999-12-31 但在将数据加载到表中之后,我遇到了一些奇怪的情况 我得到的不是默认值,而是两列中的值1753-01-01 00:00:00.0000000 有人遇到过这种情况吗?如何解决这个问题 下面是一些表DDL ALTER TABLE [dbo].[mytable] ADD CONSTRAINT [df_FMDT_IX] DEFAULT (getdate()) FOR [from_da

我有一个名为
From\u date
to\u date
的列。列的默认约束分别为
getdate()
9999-12-31

但在将数据加载到表中之后,我遇到了一些奇怪的情况

我得到的不是默认值,而是两列中的值
1753-01-01 00:00:00.0000000

有人遇到过这种情况吗?如何解决这个问题

下面是一些表DDL

ALTER TABLE [dbo].[mytable] 
ADD CONSTRAINT [df_FMDT_IX] 
DEFAULT (getdate()) FOR [from_date] 
GO 

ALTER TABLE [dbo].[mytable] 
ADD CONSTRAINT [df_TODT_IX] 
DEFAULT ('9999-12-31') FOR [to_date] 
GO 

列的数据类型是DATETIME2

您看到的日期是SQL中的最小日期值


我假设有人在该列中输入了一个零,它将显示为最小可能值。

您看到的日期是SQL中的最小日期值



我假设有人在该列中输入了一个零,该列将显示为最小可能值。

可能会编写出表DDL的脚本,并将其发布在此处,包括默认约束。列的数据类型是什么?如果改用
CONVERT(DATETIME,'9999-12-31',120)
会发生什么?如何插入行?该日期值可能是您使用的框架/语言中的默认值use@Nick.McDermaid:列的数据类型为datetime2。ALTER TABLE[dbo]。[mytable]为[from_date]GO添加约束[df_FMDT_IX]默认值(getdate())为[from_date]GO添加约束[df_TODT_IX]默认值('9999-12-31')为[to_date]GOThanks@PeterHenell:我正在使用导入导出sql向导从平面文件加载表。格式:制表符分隔符您确定该值是来自
默认值还是来自数据文件了吗?为什么不把它作为第一件事来做呢?也许可以编写出表DDL的脚本并将其发布在这里,包括默认约束。列的数据类型是什么?如果改用
CONVERT(DATETIME,'9999-12-31',120)
会发生什么?如何插入行?该日期值可能是您使用的框架/语言中的默认值use@Nick.McDermaid:列的数据类型为datetime2。ALTER TABLE[dbo]。[mytable]为[from_date]GO添加约束[df_FMDT_IX]默认值(getdate())为[from_date]GO添加约束[df_TODT_IX]默认值('9999-12-31')为[to_date]GOThanks@PeterHenell:我正在使用导入导出sql向导从平面文件加载表。格式:制表符分隔符您确定该值是来自
默认值还是来自数据文件了吗?为什么不先这样做呢?我正在使用导入导出向导将数据从平面文件加载到sql表。平面文件中的两个列都是空的,所以应该有默认值,但不是默认值,而是列中出现了一些垃圾值。当您说空白时,这是一个零长度字符串吗?它与空值不同。然后它将使用零长度字符串作为要插入的数据,这与插入空值然后使用默认值不同。您必须进行某种类型的错误捕获,以查看您尝试导入的数据是否是长度小于1的字符串,并将其替换为适当的空值。是否可以通过对列的约束来实现。请提出建议。问题不在于你的限制,而在于数据导入过程。您可以查看是否可以在导入步骤中编辑数据。或者,混乱的方法是在完成导入后运行update语句来更新这些值。我正在使用导入导出向导将数据从flatfile加载到sql表。平面文件中的两个列都是空的,所以应该有默认值,但不是默认值,而是列中出现了一些垃圾值。当您说空白时,这是一个零长度字符串吗?它与空值不同。然后它将使用零长度字符串作为要插入的数据,这与插入空值然后使用默认值不同。您必须进行某种类型的错误捕获,以查看您尝试导入的数据是否是长度小于1的字符串,并将其替换为适当的空值。是否可以通过对列的约束来实现。请提出建议。问题不在于你的限制,而在于数据导入过程。您可以查看是否可以在导入步骤中编辑数据。或者,混乱的方法是在完成导入以更新这些值之后运行update语句。