UNIX_TIMESTAMP()
函数给出了NOW
的unix时间戳。
但我想获得当前时间的开始unix时间戳。
有什么方法可以获得它吗?
假设当前时间= 2016-03-07 13:05:23
UNIX_TIMESTAMP() -> 1457334323
我想获得 2016-03-07 13:00:00
预期结果: 1457334000
答案 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
。
现在,如果仔细观察,您只需要避开minute
和second
部分。 Minute
和Second
预计会有zero
值。
因此,如果您从minute
中减去second
和now
,那么您将到达当前小时的开头。然后参加这个特定时间的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
强>