在 SQL 中将 varchar 更改为 datetime 相关的问题
An issue related to changing varchar to datetime in SQL
我有一个与数据类型相关的问题。现在我正在尝试将一个平面文件导入到我的目标数据库中。
- 我将平面文件导入到暂存数据库中的一个 table A 中。 table A 中的所有列均为 varchar(50) 数据类型。
- 我写了一个SQL查询来更改数据类型并清理table A中的数据,最后将干净的数据插入到目标数据库中的table B中。
问题是:此文件中有一列包含日期数据。它是 table A 中的 varchar(50) 数据类型。但它也包含空行。所以在 table A 中看起来不错:有些行是日期,有些行是空的。但是,在我运行 SQL 查询之后。在table B中,将table A中的所有空行改为1900-01-01 00:00:00.000。请注意,我将 table B 中的此列设置为日期时间数据类型。
现在我希望此列中带有日期的行显示日期,而空行在目标数据库中为空。我不希望空行是 1900-01-01 00:00:00.000。我该如何修改
我的 SQL 代码来完成我的目标?
想必,你可以这样做:
nullif(<expression to convert col to date/time>, '1900-01-01 00:00:00.000')
我有一个与数据类型相关的问题。现在我正在尝试将一个平面文件导入到我的目标数据库中。
- 我将平面文件导入到暂存数据库中的一个 table A 中。 table A 中的所有列均为 varchar(50) 数据类型。
- 我写了一个SQL查询来更改数据类型并清理table A中的数据,最后将干净的数据插入到目标数据库中的table B中。
问题是:此文件中有一列包含日期数据。它是 table A 中的 varchar(50) 数据类型。但它也包含空行。所以在 table A 中看起来不错:有些行是日期,有些行是空的。但是,在我运行 SQL 查询之后。在table B中,将table A中的所有空行改为1900-01-01 00:00:00.000。请注意,我将 table B 中的此列设置为日期时间数据类型。 现在我希望此列中带有日期的行显示日期,而空行在目标数据库中为空。我不希望空行是 1900-01-01 00:00:00.000。我该如何修改 我的 SQL 代码来完成我的目标?
想必,你可以这样做:
nullif(<expression to convert col to date/time>, '1900-01-01 00:00:00.000')