我有一个数据库,其中我的所有数据都有一个unix时间戳作为整数,整数是自1.jan 1970以来的秒数。(就像Time.now.to_i在ruby http://www.unixtimestamp.com中返回的那样)。
有什么方法可以在SQL中从1447277423获取日期?我需要按日期对行进行分组。
我希望在视图中完成此操作,而不是使用其他脚本来执行此操作。
这可能吗?
答案 0 :(得分:2)
将unix时间戳仅转换为日期(因为你不想要小时/秒),然后按它分组。
SELECT * FROM table
GROUP BY FROM_UNIXTIME(date_timestamp, '%Y %m %d');
或者,如果您不想对它们进行实际分组,只是希望它们按顺序输出,请改为ORDER BY。
SELECT * FROM table
ORDER BY date_timestamp
/* when ordering, it doesn't matter so much if its the whole timestamp or not since the date comes first in the timestamp */
要进一步,您还可以选择格式化的日期
SELECT *, FROM_UNIXTIME(date_timestamp, '%Y %m %d') as date_Ymd FROM table
ORDER BY date_timestamp;
答案 1 :(得分:1)
只需使用FROM_UNIXTIME():
group by DATE(FROM_UNIXTIME(your_unix_timestamp_field))
答案 2 :(得分:0)
这是unix时间戳的好处,您可以将其视为整数。
SELECT something FROM table WHERE date >= 1447277423
希望这有帮助