私は週内にリーダーボードから得点を表示しようとしています。LIKEとBETWEEN Haxeを使用したクエリSQL
現在、私は次のように特定の毎日のスコアを照会:
ので、「後のものを見つけるの2016年11月25日20時04分47秒でフォーマットされている私のタイムスタンプからのスコアが表示されますpublic static function displayDay(day:String)
{
queryLeaderboard("SELECT * FROM gamedata WHERE ts LIKE '%-" + day + "%' ORDER by scoreDifference DESC LIMIT 10");
}
- "その後何かで。毎年、毎月、毎日のスコアでうまく動作します。
しかし、私は毎週の得点を見つけようとしています。
私は現在、次があります。
public static function displayWeek()
{
var dateNow:Date = Date.now();
Lib.print(dateNow);
Lib.print("<br>");
Lib.print(dateNow.getDate());
Lib.print("<br>");
var weekAgo:Int = dateNow.getDate() - 7;
Lib.print(weekAgo);
Lib.print("<br>");
var query:String = "SELECT * FROM gamedata WHERE ts BETWEEN LIKE '%-" + weekAgo + "%' AND LIKE '%-" + dateNow.getDate() + "%' ORDER by scoreDifference DESC LIMIT 10";
Lib.print(query);
queryLeaderboard(query);
}
次のようにクエリは次のとおりです。
SELECT * FROM gamedata WHERE ts BETWEEN LIKE '%-19%' AND LIKE '%-26%' ORDER by scoreDifference DESC LIMIT 10
そして、私はSQLクエリの(限られた)理解して何から、それが検索しようとして好きではありません。お互いの間の値は文字列ですか?しかし、私はフォーマットがHaxeのSDateTimeだと信じています。
これを行うにはどうすればよいですか?
class GameData extends Object
{
public var id:SId;
public var username:SString<32>;
public var countryA2:SString<32>;
public var scoreFor:SInt;
public var scoreAgainst:SInt;
public var scoreDifference:SInt;
public var ts:SDateTime;
}
'gamedata'テーブルのメタデータ(列名とデータ型)を編集してください。ありがとう。 –
これはSQLの実際のテーブル構造より優れていますか? – Sectah
データベースに定義されている実際のテーブル構造は、してください。ありがとう。 –