当前位置: 首页 > 知识库问答 >
问题:

为什么在日期列中添加NULL会导致显示值1900-01-01?

姬和歌
2023-03-14

我使用SSIS包导入一个基本文本文件,它有3个日期字段,有时一些日期字段是空的。

导入的表显示空字段,我想是因为它们是varchar(50)数据类型。但是我需要将该表中的记录插入到另一个表中,其中这些列被定义为Date数据类型。

当我运行insert语句时,目标表中的结果值都显示日期为1900-01-01,而不是NULL或空白。我试图强制该值为null,但无效:

CASE WHEN refresh_date IS NULL THEN NULL ELSE refresh_date END AS RefreshDate

如何使日期列只接受空白或空值?

共有3个答案

杜俊逸
2023-03-14

也许输入的不是空值,而是空字符串。您提到它们可以是VARCHAR(50)数据类型。所以你可能需要添加更多的逻辑。试试这个:

NULLIF(LTRIM(RTRIM(refresh_date)),'')

常坚
2023-03-14

尝试使用以下表达式在数据流任务中添加派生列转换,问题可能是由空字符串(非空值)引起的

如果输入的类型是Date:

ISNULL([DateColumn]) ? NULL(DT_DATE) : (DT_DATE)[DateColumn]

如果输入列的类型为string

(ISNULL([DateColumn]) || [DateColumn] == "") ? NULL(DT_DATE) : (DT_DATE)[DateColumn]

并将此列映射到目标列

鲁景山
2023-03-14

如果varchar字段为“空”,则不应强制转换或转换为日期。当一个空白或空字符串被铸造到一个日期时,它等于“1900-01-01”。您可以使用以下算法进行测试:

SELECT CAST('' as date)

使用SSI,最好检查varchar(50)字段是否等于“”,如果是,则将其设置为NULL。下面是一个SQL查询示例:

SELECT CASE WHEN importedfield = '' THEN NULL
            ELSE CAST(importedfield as date)
       END AS [NewFieldname]
 类似资料:
  • 问题内容: [PAYOFF DATE]列具有一些空白值和一些以mm / dd / yy格式表示的值。 我必须将“ /”替换为“-”,并将日期返回为yyyy-mm-dd。下面的查询正在执行此操作。问题是对于所有空白值,我得到的结果都是1900-01-01。 是否可以将1900-01-01替换为null并按yyyy-mm-dd格式返回其他有效日期值? 我正在使用SQL Server。 问题答案: 您不

  • 在windows上的MongoDB Shell中,如果运行值为的查询 它实际上似乎在寻找 如果您直接在Mongo Shell中输入“new ISODate('0001-01-01T00:00:00Z')”,您可以在返回ISODate(“1901-01-01T00:00:00Z”)时看到正在进行的转换。 奇怪的是,当您使用“new Date”而不是“new ISODate”时,请输入: 它返回正确的

  • 问题内容: 我有一个日期格式为的表格。为了搜索数据库,我将日期格式转换为。但是当我显示它时。PHP代码如下: 为什么会这样呢?如何将其格式化为? 问题答案: 替换为:

  • 我正在尝试创建多个JavaFX应用程序,直到现在,当我尝试添加时,还没有遇到任何问题。我可以有一个全新的文件,并包括初始化的一行,这将导致异常。我在网上找遍了,什么也没有得到。仅仅添加TextField就会导致异常甚至出现在其他先前运行的k程序中。以下示例: 到目前为止我创建的程序:

  • 我在我的应用程序中有一个输入字段,它通过日期选择器接受日期。有时用户不选择任何日期,他们可能会提交空白(客户端要求),因为这不是一个强制字段。 空白提交后,存储在SQL Server 2008数据库中的数据为“1900-01-01”。相反,我需要将数据存储为'NULL'或'empty'或'0000-00-00',而不是任何其他有效的日期格式。 如果<代码>请求。getparameter()为空,我

  • 问题内容: 我想在地图上显示许多不同的标签,所以我在面板中使用空布局,并为每个标签调用setLocation。但是由于某种原因,标签没有显示。如果删除pan.setLayout(null),则标签将出现在面板的顶部中央。为什么null布局不能与setPosition一起使用? 问题答案: 这是绝对定位(或布局)的问题。它要求您设置所有组件的大小,否则它们将保留为默认的零大小,并且不会显示。这就是为