我有时代UNIX格式的时间戳。我想通过直接指定日期而不是时间戳来运行查询。那件事怎么可能?
SELECT FROM_UNIXTIME(timestamp)
FROM report_data
WHERE timestamp = '1399376713'我用它来转换成人类可读的格式。
我的数据库就像这样
时间戳event_type标志1399357862 701空
我想在查询中给出一个特定的日期并得到结果。
发布于 2015-02-12 05:32:09
可以使用FROM_UNIXTIME函数。
这假设您的表包含DATETIME或TIMESTAMP中的列,并且希望在查询中提供32位整数值。
例如:
SELECT ...
FROM mytable t
WHERE t.datetime_col >= FROM_UNIXTIME( ? )
AND t.datetime_col < FROM_UNIXTIME( ? )作为参数提供给FROM_UNIXTIME函数的整数值将被解释为unix风格的“秒自划时代”整数值,并将使用客户端连接的当前时区设置转换为日期时间值。
这种方法将使MySQL能够使用带有datetime_col前导列的索引使用范围扫描操作。
不清楚的是列的数据类型是什么,以及要在查询中提供什么值。如果列是数据类型DATE、DATETIME或TIMESTAMP (这将是存储日期/时间数据的规范模式),则可以以标准MySQL格式'YYYY-MM-DD HH:MM:SS'指定日期文本。
WHERE t.timestamp_col >= '2015-02-11 07:00'
AND t.timestamp_col < '2015-02-11 23:30:00'如果将“时间戳”存储为整数值,则需要谓词的右侧返回整数值。
WHERE t.integer_col >= UNIX_TIMESTAMP('2015-02-10')
AND t.integer_col < UNIX_TIMESTAMP('2015-02-10' + INTERVAL 24 HOUR)https://stackoverflow.com/questions/28469966
复制相似问题