我有:(这个例子有效)
SELECT *
FROM messages m
WHERE
m.create_timestamp > STR_TO_DATE('2016-01-28 05:06:38', '%Y-%m-%d %H:%i:%s')
ORDER BY m.create_timestamp
LIMIT 100;
但我有这个' 2016-01-28 05:06:38' UNIX格式的日期时间。
我试过了:
m.create_timestamp > FROM_UNIXTIME(1453946798, '%Y-%m-%d %H:%i:%s')
但这不起作用。
我想在UNIX格式中比较日期:m.create_timestamp > 1453946798
求救!
答案 0 :(得分:1)
UNIX格式只是自1970-01-01 00:00:00 UTC
以来的毫秒数。所以你可以比较它们之间的值。最高值将是稍晚的点。
简单:
m.create_timestamp > 1453946798
> 1453946798
表示它在2016-01-28 05:06:38
< 1453946798
表示它在2016-01-28 05:06:38
确保unix时间戳具有相同的精度。有时,它是自纪元以来的秒数,而不是精度和存储大小原因的毫秒数。
如果您有一个以毫秒为单位的时间戳与1453946798进行比较,请将其除以1000并在比较时间戳之前将其置于最低位置。
要将DATETIME
转换为TIMESTAMP
,您可以使用以下内容:
UNIX_TIMESTAMP('2015-01-15 12:00:00');
当然,请将'2015-01-15 12:00:00'
替换为要转换的日期。
答案 1 :(得分:0)
试试这个
SELECT * FROM messages m
WHERE
m.create_timestamp > FROM_UNIXTIME(create_timestamp)
ORDER BY m.create_timestamp
LIMIT 100
答案 2 :(得分:0)
我想你想要unix_timestamp();此命令会将日期时间转换为unix时间戳:unix_timestamp('YYYY-MM-DD HH:MM:SS')
。