我的日期列数据类型为“ nvarchar”。我的日期列值将类似于XXXX-XX-XX
(YYYY-MM-DD)。 XX是2018-XX-01
我的表包含以下记录
ID DOB
-- ------------
1 2018-01-01
2 2018-04-01
3 2018-XX-01
场景1
当我查询当时的日期2018-01-01
时,我想在输出下方
2018-01-01
2018-XX-01
因为XX是任何数字。
场景2
当我查询当时的日期2018-XX-01
时,我想在输出下方
2018-01-01
2018-XX-01
2018-04-01
因为XX是否
这里的XX将位于年,月,日的任意位置。
任何人都可以用SQL或C#提供解决方案。
答案 0 :(得分:1)
嗯。我认为您可以使用like
,但可以双向使用:
where @datestr like replace(dob, 'XX', '%') or
dob like replace(@datestr, 'XX', '%')
答案 1 :(得分:0)
这是使用IEqualityComparer的解决方案
// or go straight to your average
var sum = data.GroupBy(e => new
{
e.String1,
e.Int1,
e.Int2,
e.Decimal1,
}).Average(e => e.Key.Decimal1);