如何将nvarchar转换为数字



我有十进制值的字段,但在数据库中导入为nvarchar(50)数据类型,看起来像这样:

tbody> <<tr>
时间 (订购产品销售) (订购单位)
2022 - 01 - 01 t00:00:0055.60美元4
2022 - 01 - 03 t00:00:00652.54美元13

导致错误的问题是[Ordered_product_sales]列中的数据字符串包含不能转换为numeric数据类型的字符。在执行CAST函数之前,必须首先对字符串进行消毒,以删除所有不能转换的字符,特别是示例数据中存在的$

这个应该可以工作:

SELECT 
[Time]
,SUM(CAST(REPLACE([Ordered_product_sales], '$', '') AS NUMERIC(10, 2))) 
AS Sales_per_day,
,SUM(CAST([Units_ordered] AS INT)) AS num_of_units_ordered
FROM [dbo].[salesDashboard]

您应该花一些心思和精力来改进表和列的数据类型设计。

相关内容

  • 没有找到相关文章

最新更新