如何比较UNIX DATA和TIME

时间:2016-04-18 13:19:38

标签: mysql

我有:(这个例子有效)

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 求救!

3 个答案:

答案 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')