如何在MySQL中获取当前小时的启动Unix时间戳?

时间:2016-03-07 09:54:07

标签: mysql

MySQL中的

UNIX_TIMESTAMP()函数给出了NOW的unix时间戳。

但我想获得当前时间的开始unix时间戳。

有什么方法可以获得它吗?

假设当前时间= 2016-03-07 13:05:23

UNIX_TIMESTAMP() -> 1457334323

我想获得 2016-03-07 13:00:00

的unix时间戳

预期结果: 1457334000

4 个答案:

答案 0 :(得分:1)

试试这个:

select UNIX_TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-%d %H-00-00'));

答案 1 :(得分:0)

您可以使用UNIX_TIMESTAMP()功能完成工作。

SELECT (
         UNIX_TIMESTAMP(NOW()) - (MINUTE(NOW()) * 60 + SECOND(NOW())) 
       ) AS startUnixTimestampOfCurrentHour;

<强>解释

假设Now()返回2016-03-07 13:05:23

现在,如果仔细观察,您只需要避开minutesecond部分。 MinuteSecond预计会有zero值。

因此,如果您从minute中减去secondnow,那么您将到达当前小时的开头。然后参加这个特定时间的UNIX_TIMESTAMP

SELECT (UNIX_TIMESTAMP() DIV 3600)*3600 AS startUnixTimestampOfCurrentHour;

答案 2 :(得分:0)

select unix_timestamp(date_format(now(), "%Y-%m-%d %H:00:00"));

答案 3 :(得分:0)

您可以使用DATE_FORMAT删除分钟/秒部分:

SELECT UNIX_TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00')) AS result

SqlFiddleDemo