0

我需要这方面的帮助。

当我从 SSMS 查询数据时,我得到了奇怪的字符,如图所示。

在此处输入图像描述

我已经尝试过这个 SQL 命令,但它没有帮助。期望的结果应该是 1D 或 1M 或 1W。

CONVERT(varchar(50),[Date Formula 1]) COLLATE SQL_Latin1_General_CP1_CI_AS [Date Fromula 1]
4

1 回答 1

1

这不是由于 SSMS。这是由于数据的存储方式。

最初,当数据以 1D/1M/1W 的形式出现时,由于以下原因之一,它没有被存储:

  • 数据库默认排序规则不支持,ASCII字符如D/M/W字符
  • 如果默认排序规则是非 ASCII 并且列数据类型不是 NVARCHAR 或 NCHAR 并且您没有插入带有 N'1M'、N'1D'、N'1W' 的数据类型,即带有 N 前缀
INSERT INTO TableName(DateFormula) VALUES (N'1M'),(N'1D'), (N'1W')
  • 数据访问层存在一些问题,数据未正确传递到数据库

你现在可以做什么? 插入时数据丢失。没有办法恢复它。更好地使用正确的 unicode 数据类型或为列定义的正确排序规则重新插入数据。

于 2021-04-09T08:40:13.077 回答