2016-03-07 105 views

回答

0

您可以使用UNIX_TIMESTAMP()函数完成所做的工作。

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

说明:

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

现在,如果你仔细观察,那么你只需要避免minutesecond部分。预计MinuteSecond的值为zero

因此,如果您从now中减去minutesecond,那么您将达到当前小时的开始时间。然后在这个特定时间采取UNIX_TIMESTAMP

OR

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

+0

多亏了它。顺便说一句,很好的解释! –

1

试试这个:

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

非常感谢。这是另一种方式! –

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

非常感谢。 –

0

你可以使用DATE_FORMAT删除分钟/第二部分:

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

SqlFiddleDemo