Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sql YEAR(),MONTH() in Linq

Tags:

c#

.net

linq

I've been looking for a few days to resolve the sql query on linq. This is my sql query ([Date] have format datatime2):

SELECT [Date], TestingValues 
FROM [SalesValue].[dbo].[TestTable] 
WHERE CONCAT(DATEPART(yyyy,[Date]),DATEPART(MM,[Date])) = '201801'

My query looks like this and I can not move on. I do not know how to get a year and a month from b_TestTable.Date:

string dat = DateTime.ParseExact(dats, "yyyy-MM-dd", CultureInfo.CurrentCulture).ToString("yyyyMM");

var testQuery = (
        from b_TestTable in repos.GetTable<TestTable>() 
        where b_TestTable.Date == dat 
        select b_TestTable.TestingValues)
    .ToArray();

Can anyone help me how would the query look like in linq ?? Thank you for your help.

like image 867
PYJTER xXx Avatar asked Nov 16 '25 18:11

PYJTER xXx


2 Answers

You can use

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();
like image 155
Thomas Ayoub Avatar answered Nov 19 '25 08:11

Thomas Ayoub


Unless I'm missing something obvious here, you only want to check the year and month - so:

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();
like image 27
Zohar Peled Avatar answered Nov 19 '25 08:11

Zohar Peled



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!