1

私はmysqlに日時フィールドを持っています。

YYYY-MM-DD HH の形式でこれら 2 つの日付範囲から選択する必要があります

「2012-12-20 10」と「2012-12-23 15」

utcdt が日時フィールドである mysql でこれを行うにはどうすればよいですか?

SELECT DISTINCT utcdt
FROM rtb
WHERE 
utcdt>=UNIX_TIMESTAMP("2012-12-20 10") and utcdt<=UNIX_TIMESTAMP("2012-12-23 15")
4

2 に答える 2

5

BETWEENおよびSTR_TO_DATE以下のように使用します。

 SELECT DISTINCT utcdt
 FROM rtb
 WHERE 
 utcdt BETWEEN STR_TO_DATE('2012-12-20 10', '%Y-%m-%d %h') 
       and STR_TO_DATE('2012-12-23 15', '%Y-%m-%d %h')
于 2012-12-26T19:07:13.047 に答える
1

これを行うには多くの方法があります。Yogendra Singhはすでに 1 つのオプションを示しました。次のこともできます。

SELECT DISTINCT utcdt
FROM rtb
WHERE 
UNIX_TIMESTAMP( utcdt ) BETWEEN
    UNIX_TIMESTAMP("2012-12-20 10") AND
    UNIX_TIMESTAMP("2012-12-23 15");

... 例えば。または、次のこともできます。

SELECT DISTINCT utcdt
FROM rtb
WHERE 
utcdt BETWEEN
    "2012-12-20 10" AND
    "2012-12-23 15";

... 言い換えれば、最初に UNIX タイムスタンプに変換する必要さえありません。

そして、あなたが試みたのと同じ方法で、さらに:

SELECT DISTINCT utcdt
FROM rtb
WHERE 
utcdt >= "2012-12-20 10" AND
utcdt <= "2012-12-23 15";
于 2012-12-26T19:17:25.017 に答える