从 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()
我有一个名为 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()