Это у вас работает?
var sqls = new []
{
"select x from y",
"select w from q",
// etc - 24 options
};
var sql = sqls[DateTime.Now.Hour];
Или даже:
var sqls = new Action[]
{
() => { /* sql for midnight */ },
() => { /* sql for 1 am */ },
// etc
() => { /* sql for 11 pm */ },
};
var sql = sqls[DateTime.Now.Hour];
sql.Invoke();
Если вы хотите DayOfWeek
и Hour
, вы можете использовать это:
var sqls = new string[][]
{
new [] { "select x from y", "select w from q", },
new [] { "select x from y", "select w from q", },
new [] { "select x from y", "select w from q", },
new [] { "select x from y", "select w from q", },
new [] { "select x from y", "select w from q", },
new [] { "select x from y", "select w from q", },
new [] { "select x from y", "select w from q", },
};
var sql = sqls[(int)DateTime.Now.DayOfWeek][DateTime.Now.Hour];
Основываясь на комментариях и других ответах, вот более краткий способ сделать это:
string day = DateTime.Now.DayOfWeek.ToString().Substring(0, 3);
string[] shifts = new []
{
"('22:00-7:00')",
"('22:00-7:00', '6:00-15:00')",
// 24
};
string shift = shifts[DateTime.Now.Hour];
string sql = $"SELECT agentlogin FROM agentdetails WHERE location = 'PNQ10-Pune' AND shift IN {shifts} AND {day} = 'W'";