C# Linq中的Sql年(),月()
我已经找了几天来解决linq上的sql查询。 这是我的sql查询([Date]具有格式datatime2):C# Linq中的Sql年(),月(),c#,.net,linq,C#,.net,Linq,我已经找了几天来解决linq上的sql查询。 这是我的sql查询([Date]具有格式datatime2): 选择[日期],测试值 来自[SalesValue].[dbo].[TestTable] 其中CONCAT(DATEPART(yyyy,[Date])、DATEPART(MM,[Date]))='201801' 我的问题是这样的,我无法继续。我不知道如何从b_TestTable获得一年和一个月。日期: string dat=DateTime.ParseExact(dats,“yyyy-M
选择[日期],测试值
来自[SalesValue].[dbo].[TestTable]
其中CONCAT(DATEPART(yyyy,[Date])、DATEPART(MM,[Date]))='201801'
我的问题是这样的,我无法继续。我不知道如何从b_TestTable获得一年和一个月。日期:
string dat=DateTime.ParseExact(dats,“yyyy-MM-dd”,CultureInfo.CurrentCulture).ToString(“yyyyymm”);
var testQuery=(
来自repos.GetTable()中的b_测试表
其中b_TestTable.Date==dat
选择b_TestTable.TestingValues)
.ToArray();
有人能帮我看看linq中的查询是什么样子的吗??
谢谢您的帮助。您可以使用
var dat = DateTime.ParseExact(dats, "yyyy-MM-dd", CultureInfo.CurrentCulture);
var testQuery = (
from b_TestTable in repos.GetTable<TestTable>()
where b_TestTable.Date.Year == dats.Year
&& b_TestTable.Date.Month == dats.Month
select b_TestTable.TestingValues)
.ToArray();
var dat=DateTime.ParseExact(dats,“yyyy-MM-dd”,CultureInfo.CurrentCulture);
var testQuery=(
来自repos.GetTable()中的b_测试表
其中b_TestTable.Date.Year==dats.Year
&&b_TestTable.Date.Month==dats.Month
选择b_TestTable.TestingValues)
.ToArray();
除非我在这里遗漏了一些明显的内容,否则您只需要查看年份和月份-因此:
var dat = DateTime.ParseExact(dats, "yyyy-MM-dd", CultureInfo.CurrentCulture);
var testQuery = (
from b_TestTable in repos.GetTable<TestTable>()
where b_TestTable.Date.Year == dat.Year && b_TestTable.Date.Month == dat.Month
select b_TestTable.TestingValues)
.ToArray();
var dat=DateTime.ParseExact(dats,“yyyy-MM-dd”,CultureInfo.CurrentCulture);
var testQuery=(
来自repos.GetTable()中的b_测试表
其中b_TestTable.Date.Year==dat.Year&&b_TestTable.Date.Month==dat.Month
选择b_TestTable.TestingValues)
.ToArray();
b_TestTable.Date类型为Date,则无需将DAT转换为字符串
var testQuery = (
from b_TestTable in repos.GetTable<TestTable>()
where b_TestTable.Date.ToString("yyyyMM") == dats//If is in format yyyyMM
select b_TestTable.TestingValues)
.ToArray();
var testQuery=(
来自repos.GetTable()中的b_测试表
其中,b_TestTable.Date.ToString(“yyyyMM”)==dats//If的格式为yyyyMM
选择b_TestTable.TestingValues)
.ToArray();
如果要比较日期,则可以直接比较月份和年份
var testQuery = (
from b_TestTable in repos.GetTable<TestTable>()
where b_TestTable.Date.Month == dat.Month && b_TestTable.Date.Year = dat.Month
select b_TestTable.TestingValues)
.ToArray();
var testQuery=(
来自repos.GetTable()中的b_测试表
其中b_TestTable.Date.Month==dat.Month&&b_TestTable.Date.Year=dat.Month
选择b_TestTable.TestingValues)
.ToArray();
使用扩展方法实现:
repos.GetTable<TestTable>()
.Where(b_TestTable=> b_TestTable.Date.Month == dat.Month && b_TestTable.Date.Year = dat.Month)
.Select(result=> result.TestingValues).ToArray();
repos.GetTable()
其中(b_TestTable=>b_TestTable.Date.Month==dat.Month&&b_TestTable.Date.Year=dat.Month)
.Select(result=>result.TestingValues).ToArray();
您是要与日期的年/月部分进行比较,还是要将其格式化为yyyymo格式?如果您想格式化它,请查看以下内容:,如果没有,请尝试b_TestTable.Date.Year&b_TestTable.Date.Monthdats
这里是一个字符串(犯了相同的错误)谢谢,修复:-)