我在 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")
使用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')
有很多方法可以做到这一点。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";