从 MySQL table 中检索数据,以毫秒为单位存储

Retrieve data from MySQL table stored as milliseconds

我有一个名为 premium_end_date 的字段,我 运行 查询检索一个小于 premium_end_daten 的日期,字段记录以毫秒为单位存储:

mysql> SELECT id_prem, premium_end_date FROM ads_premium LIMIT 1;
+---------+------------------+
| id_prem | premium_end_date |
+---------+------------------+
|       1 |       1633967568 |
+---------+------------------+
1 row in set (0.00 sec)

table 看起来像:

mysql> describe ads_premium;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id_prem            | int unsigned | NO   | PRI | NULL    | auto_increment |
| premium_views      | bigint       | YES  |     | NULL    |                |
| premium_start_date | bigint       | YES  |     | NULL    |                |
| premium_end_date   | bigint       | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
10 rows in set (0.03 sec)

我运行这个查询:

/** code here */
WHERE premium_end_date >= CURDATE()
/** code here */

但是由于记录是以毫秒为单位的,所以它没有return任何东西,我不想把这个字段从bigint改成另一个,因为我里面有很多数据

对我来说,这看起来像是一个直接的 unix 时间戳。

如果你运行,

SELECT FROM_UNIXTIME(1633967568);

你有约会吗2021-10-11 15:52:48

所以你可以select使用

WHERE FROM_UNIXTIME(premium_end_date) >= CURRENT_TIMESTAMP()