这对你有用吗?
var sqls = new []
{
"select x from y",
"select w from q",
// etc - 24 options
};
var sql = sqls[DateTime.Now.Hour];
Or even:
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
and 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'";