请看下面的代码片段1 = 1在T-SQL中返回False - 为什么?
DEClaRE @p__linq__0 datetime
SET @p__linq__0 = '2012-02-01 00:00:00'
SELECT (STR(CAST(DATEPART (day, @p__linq__0) AS float)))
SELECT
InvoicingActivityStartDay,
(STR(CAST(DATEPART (day, @p__linq__0) AS float))),
CASE WHEN STR(CAST(DATEPART (day, @p__linq__0) AS float))= InvoicingActivityStartDay THEN 'EQUAL' ELSE 'NOT EQUAL' END
FROM INVOICEMETADATA
这是一个LINQ到实体查询我曾在我的应用程序的粗糙SQL翻译。对于InvoicingActivityStartDay两个可能的值是1和20
这段代码的结果行是这样的:
InvoicingActivityStartDay Column1 Column2
1 1 NOT EQUAL
20 1 NOT EQUAL
我明白为什么它返回不等于第二行;但为什么它在1 = 1的第一行返回NOT EQUAL?
“InvoicingActivityStartDay”的类型是什么? – 2012-03-20 18:39:52
@FrédéricHamidiNVARCHAR(2);但只保留数字。 – FMFF 2012-03-20 18:54:46
您是否检查过该字符串实际上是“1”而不是“1”? (注意尾部空格) – 2012-03-20 18:56:47