public IList <SenkaData> GetPlayerDataList(long playerID, DateTime start, out SenkaServerData serverData)
        {
            DateTime         end     = start.AddMonths(1).AddMinutes(-1);
            List <SenkaData> dataset = new List <SenkaData>();

            serverData = null;

            string playerSQL = " WHERE PlayerID = @PlayerID AND Date > @DateStart AND Date < @DateEnd";

            using (var DataBaseConnection = NewSQLiteConnection())
                using (var cmd = new SQLiteCommand(DefaultSQL + playerSQL, DataBaseConnection)) {
                    DataBaseConnection.Open();
                    SQLiteParameter[] paras = new SQLiteParameter[3] {
                        new SQLiteParameter("@PlayerID", DbType.Int64),
                        new SQLiteParameter("@DateStart", DbType.DateTime),
                        new SQLiteParameter("@DateEnd", DbType.DateTime)
                    };
                    cmd.Parameters.AddRange(paras);
                    cmd.Parameters["@PlayerID"].Value  = playerID;
                    cmd.Parameters["@DateStart"].Value = start;
                    cmd.Parameters["@DateEnd"].Value   = end;

                    using (var reader = cmd.ExecuteReader()) {
                        while (reader.Read())
                        {
                            dataset.Add(new SenkaData(reader));
                            if (serverData == null)
                            {
                                serverData = _servers[Convert.ToInt32(reader["ServerID"])];
                            }
                        }
                    }
                }
            return(dataset.OrderBy(d => d.Date).ToList());
        }
        public IList <SenkaData> GetPlayerDataList(long playerID, out SenkaServerData serverData)
        {
            DateTime now   = DateTime.UtcNow.AddHours(9).AddHours(-12); //UTC+9 - 12hr
            DateTime start = new DateTime(now.Year, now.Month, 1);

            return(GetPlayerDataList(playerID, start, out serverData));
        }