首页 > 解决方案 > 如何在 mssql 中将 NVARCHAR 转换为 BIT

问题描述

我是 mssql 的新手,在这里我收到一个参数为“NVARCHAR”,但列数据类型是 BIT,所以我需要将 Nvarchar 数据转换为位数据。

这里的 Nvarchar 数据总是“真”或“假”。

INSERT INTO EC_CUSTOMER_PROFILE(
                                        CP_SEND_NEWS_LETTER,
                                        CP_SEND_PARTNER_SPECIAL_OFFER,
                                        CP_CREATION_DATE,
                                        CP_CREATED_BY)

                                 VALUES(
                                        @mNewsLetter, //Nvarchar(50)
                                        @mSpecialOffer, //Nvarchar(50)
                                        GETDATE(),
                                        @mUserId)

任何人都可以帮我解决它。

标签: sql-serversql-server-2008

解决方案


只需使用CASE表达式,例如

CASE @mSpecialOffer WHEN 'TRUE' THEN 1 ELSE 0 END

所以...

INSERT INTO EC_CUSTOMER_PROFILE(
       CP_SEND_NEWS_LETTER,
       CP_SEND_PARTNER_SPECIAL_OFFER,
       CP_CREATION_DATE,
       CP_CREATED_BY)

VALUES(
       CASE @mNewsLetter WHEN 'TRUE' THEN 1 ELSE 0 END, 
       CASE @mSpecialOffer WHEN 'TRUE' THEN 1 ELSE 0 END, 
       GETDATE(),
       @mUserId)

推荐阅读