1

我在 mysql 中有一个日期时间字段。

我需要以这种格式 YYYY-MM-DD HH 在这两个日期范围之间进行选择

“2012-12-20 10”和“2012-12-23 15”

我如何在 mysql 中执行此操作,其中 utcdt 是我的日期时间字段?

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

使用BETWEENSTR_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已经展示了一种选择。你也可以这样做:

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 回答