4Manuals

  • PDF Cloud HOME

清理SQL Server中的混乱列并更新表 Download

    如何将字符串“ text1”设置为包含项目text1,text2,test3的组合框的选定项目? XML数据类型方法“值”的参数1必须是字符串文字 当使用pyodbc时,SQL Server DateTimeOffset将可识别tz的日期时间的偏移更改为系统偏移 如何在python中使用sql查询生成文本文件? 是否可以在不连接数据库的情况下在sql中打开.bak文件? 选择前10k花费太多时间来执行 为什么需要在MySQL中引用表名`5e09c9c09e9ba0cceccb3701`? 如果目标表具有参照完整性,如何在Teradata中使用导入实用程序(如Fastload或MLOAD)? 将SQL查询转换为Laravel雄辩 是否可以复制Azure DevOps构建并在本地运行?

我在SQL Server数据库中有一个表dbo.mytbl,其中列sale_date杂乱无章。

它包含类似None,空字符串,not available,2016等的内容,而不是类似于日期的格式2019-12-05。

当前为数据类型nvarchar(max)。

我可以如下清理列。所有不喜欢日期的人都将转换为NULL

SELECT 
    CASE 
       WHEN ISDATE(sale_date) = 1 
          THEN CONVERT(DATE, sale_date) 
          ELSE NULL 
    END AS sale_date
FROM dbo.mytbl

我想使用sale_date更新表,清理和修改数据库中的alter table列。

我该如何实现?

ALTER TABLE dbo.mytbl
ALTER COLUMN ????????????;

1 个答案:

答案 0 :(得分:3)

使用try_convert()!

如果您不担心日期过长,可以这样做:

update mytbl
    set sale_date = try_convert(date, sale_date);

这会将所有非日期设置为NULL。然后,您可以放心地这样做:

alter table mytbl alter column sale_date date;



Similar searches
    通过文本列是否包含sql中的字符串中的任何单词来过滤行 使用JavaScript在点击表单中填充数据 将变量分配给锯齿状数组的特定维 React Native-FETCH响应为空-API状态500-POST调用 使用Keycloak进行dotnet Web API身份验证