与在SQL中将varchar更改为datetime有关的问题

问题描述 投票:0回答:1

我有一个与数据类型有关的问题。现在,我试图将平面文件导入到我的目标数据库中。

  1. 我将平面文件导入到临时数据库内的一个表A中。表A中的所有列均为varchar(50)数据类型。
  2. 我编写了一个SQL查询来更改数据类型并清理表A中的数据,最后将清理后的数据插入目标数据库中的表B。

这里是问题:此文件中有一列包含日期数据。它在表A中的数据类型为varchar(50)。但是它也包含空行。因此在表A中看起来不错:有些行是日期,有些行是空的。但是,运行SQL查询后。在表B中,表A中的所有空行均更改为1900-01-01 00:00:00.000。请注意,我在表B中将此列设置为datetime数据类型。现在,我希望此列中带有日期的行显示日期,而在目标数据库中将空行显示为空。我不希望空行为1900-01-01 00:00:00.000。我该如何修改我的SQL代码完成了我的目标?

sql datetime etl varchar sqldatatypes
1个回答
0
投票

大概,您可以执行以下操作:

nullif(<expression to convert col to date/time>, '1900-01-01 00:00:00.000')
© www.soinside.com 2019 - 2024. All rights reserved.