SQL - 迄今为止的 VARCHAR 分隔符是句点而不是破折号 SQL



我有一个 VARCHAR 字段,实际上在我的 SQL 表中有很多字段,其中日期是以下格式 YYYY 的 VARCHAR。唰��

我从 VARCHAR(替换(mc.CANXREASONDATE, '.', '-'( 开始,但我不知道如何将其更改为日期

我已经用谷歌搜索过,但找不到答案

任何帮助将不胜感激

尝试cast()日期:

CAST(REPLACE(mc.CANXREASONDATE, '.', '-' AS DATE) 

格式 YYYY-MM-DD 是大多数(但并非所有(数据库都能识别的 ISO 8601 标准日期格式。

如果确实要更改日期列本身,可以使用ALTER TABLE,语法如下:

ALTER TABLE mc ALTER COLUMN CANXREASONDATE DATE

当然,这些语句的确切语法可能因数据库而异。 但这应该给你一些方向。

编辑:

在 SQL Server 中,您可以使用以下方法查找错误值:

SELECT mc.CANXREASONDATE
FROM mc
WHERE TRY_CAST(REPLACE(mc.CANXREASONDATE, '.', '-' AS DATE) IS NULL;

可以在查询中使用TRY_CAST()或修复数据。

最新更新