unix_timestamp()得到的时间无法和java当中得到的时间一样。
例:在mysql中查询中用select unix_timestamp( logentry_time), logentry_time from log where logentry_id=1 limit 0,30
结果:1235061940 2009-02-19 16:45:40
大家都知道unix_timestamp()得到的是秒数,java用getTimes()得到的是毫秒
在java中试、
Date now=new Date(1235061940000l);
System.out.prinltn(now);
结果是Fri Feb 20 00:45:40 CST 2009
大家都看到了是差8个小时。但我又一次进行了测试。
select * from log where unix_timestamp( logentry_time) > 1235061939 and unix_timestamp(logentry_time) < 1235061941 limit 0,30
这样应该能到得2009-02-19 16:45:40的值了吧。但是结果却是没有数据。
本人希望mysql高手解说一下。如何才能得到这一条2009-02-19 16:45:40的记录.谢谢各位
例:在mysql中查询中用select unix_timestamp( logentry_time), logentry_time from log where logentry_id=1 limit 0,30
结果:1235061940 2009-02-19 16:45:40
大家都知道unix_timestamp()得到的是秒数,java用getTimes()得到的是毫秒
在java中试、
Date now=new Date(1235061940000l);
System.out.prinltn(now);
结果是Fri Feb 20 00:45:40 CST 2009
大家都看到了是差8个小时。但我又一次进行了测试。
select * from log where unix_timestamp( logentry_time) > 1235061939 and unix_timestamp(logentry_time) < 1235061941 limit 0,30
这样应该能到得2009-02-19 16:45:40的值了吧。但是结果却是没有数据。
本人希望mysql高手解说一下。如何才能得到这一条2009-02-19 16:45:40的记录.谢谢各位
还有你的MySQL中时区的设置是什么?(这个关系应该不太,最好检查一下)
mysql> desc log;
+---------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+----------+------+-----+---------+-------+
| logentry_time | datetime | YES | | NULL | |
| logentry_id | int(11) | YES | | NULL | |
+---------------+----------+------+-----+---------+-------+
2 rows in set (0.06 sec)mysql> select * from log;
+---------------------+-------------+
| logentry_time | logentry_id |
+---------------------+-------------+
| 2009-02-19 16:45:40 | 1 |
+---------------------+-------------+
1 row in set (0.02 sec)mysql> select unix_timestamp( logentry_time), logentry_time from log ;
+--------------------------------+---------------------+
| unix_timestamp( logentry_time) | logentry_time |
+--------------------------------+---------------------+
| 1235033140 | 2009-02-19 16:45:40 |
+--------------------------------+---------------------+
1 row in set (0.01 sec)
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM | +00:00 |
+--------------------+---------------------+
1 row in set (0.00 sec)mysql>mysql> select unix_timestamp( logentry_time), logentry_time from log ;
+--------------------------------+---------------------+
| unix_timestamp( logentry_time) | logentry_time |
+--------------------------------+---------------------+
| 1235061940 | 2009-02-19 16:45:40 |
+--------------------------------+---------------------+
1 row in set (0.00 sec)mysql>
mysql> select * from log where unix_timestamp( logentry_time) > 1235061939 and
unix_timestamp(logentry_time) < 1235061941 ;
+---------------------+-------------+
| logentry_time | logentry_id |
+---------------------+-------------+
| 2009-02-19 16:45:40 | 1 |
+---------------------+-------------+
1 row in set (0.00 sec)mysql>