首页 > 解决方案 > 无法更新列的格式化值

问题描述

我不知道出了什么问题,但我无法更新它。我在格式化日期时得到了正确的结果集,但是当我将它更新到实际表中时(执行时没有错误),它只是相同的数据。

表结构如下:

UNIDAD VARCHAR(50) NOT NULL;
TIPO_DOC nchar(10) NOT NULL,
NUMERO_DOC int NOT NULL,
MES nvarchar(50) NOT NULL,
FECHA date NOT NULL,  --the one that matters
NIT_CLIENTE nvarchar(50) NOT NULL,
NOMBRE_CLIENTE nvarchar(MAX) NOT NULL,
INGRESO money NOT NULL;

这是我一直在执行的语句(没有结果):

UPDATE INCOME
SET INCOME.FECHA=FO.FECHA
FROM INCOME
JOIN(
    SELECT INCOME.NUMERO_DOC, CONVERT(VARCHAR(10), INCOME.FECHA, 101)
        AS FECHA FROM INCOME
) FO ON FO.NUMERO_DOC = INCOME.NUMERO_DOC
WHERE FO.NUMERO_DOC = INCOME.NUMERO_DOC

请帮忙。

标签: sqlsql-server

解决方案


您无法通过使用格式化日期更新日期字段来更改其输出格式。日期字段的默认输出格式由服务器设置控制。

你有三个选择来做你想做的事:

  1. 更改服务器的默认日期格式。
  2. 在每个 SELECT 上使用 FORMAT 或 CONVERT 语句
  3. 创建一个Formatted Fechavarchar 字段以保存您要使用的输出/显示格式的日期。

好吧,您可以通过报告解决方案运行您的输出,并让它格式化日期输出,但这本身不是 SQL Server 解决方案。


推荐阅读