MySQL 中时间戳的日期时间、日期和时间字段的不同值
Different values for datetime, date and time fields from timestamp in MySQL
我正在尝试使用 FROM_UNIXTIME
字段将 TIMESTAMP
转换为 DATETIME
、DATE
和 TIME
MySQL 类型。我注意到 TIME
和 DATETIME
字段的值具有不同的时间信息。
我用打印值的简单 select 语句代替 table 的插入语句:
select FROM_UNIXTIME('1468561341') as timestamp_datetime,FROM_UNIXTIME('1468561341','%d/%m/%y') as timestamp_date, FROM_UNIXTIME('1468561341','%h:%m:%s %p') as timestamp_time
结果如下所示:
- timestamp_datetime:
2016-07-15 05:42:21.000000
- timestamp_date
15/07/16
- timestamp_time
05:07:21 AM
如何在这两列中获得一致的时间值?
问题出在字母 m
应该是我
mysql> select FROM_UNIXTIME(1468561341) as timestamp_datetime,FROM_UNIXTIME(1468561341,'%d/%m/%y') as timestamp_date, FROM_UNIXTIME(1468561341,'%h:%i:%s %p') as timestamp_time;
+---------------------+----------------+----------------+
| timestamp_datetime | timestamp_date | timestamp_time |
+---------------------+----------------+----------------+
| 2016-07-15 05:42:21 | 15/07/16 | 05:42:21 AM |
+---------------------+----------------+----------------+
1 row in set (0.05 sec)
你的问题是,在你的 FROM_UNIXTIME 中,你实际上是在告诉它做
hours-months-seconds -AM/PM
但是你想要
hours-minutes-seconds -AM/PM
所以改成
FROM_UNIXTIME(1468561341,'%h:%i:%s %p')
相反。
MySQL中所有时间参数和时间函数用法的参考指南在这里:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
我正在尝试使用 FROM_UNIXTIME
字段将 TIMESTAMP
转换为 DATETIME
、DATE
和 TIME
MySQL 类型。我注意到 TIME
和 DATETIME
字段的值具有不同的时间信息。
我用打印值的简单 select 语句代替 table 的插入语句:
select FROM_UNIXTIME('1468561341') as timestamp_datetime,FROM_UNIXTIME('1468561341','%d/%m/%y') as timestamp_date, FROM_UNIXTIME('1468561341','%h:%m:%s %p') as timestamp_time
结果如下所示:
- timestamp_datetime:
2016-07-15 05:42:21.000000
- timestamp_date
15/07/16
- timestamp_time
05:07:21 AM
如何在这两列中获得一致的时间值?
问题出在字母 m
应该是我
mysql> select FROM_UNIXTIME(1468561341) as timestamp_datetime,FROM_UNIXTIME(1468561341,'%d/%m/%y') as timestamp_date, FROM_UNIXTIME(1468561341,'%h:%i:%s %p') as timestamp_time;
+---------------------+----------------+----------------+
| timestamp_datetime | timestamp_date | timestamp_time |
+---------------------+----------------+----------------+
| 2016-07-15 05:42:21 | 15/07/16 | 05:42:21 AM |
+---------------------+----------------+----------------+
1 row in set (0.05 sec)
你的问题是,在你的 FROM_UNIXTIME 中,你实际上是在告诉它做
hours-months-seconds -AM/PM
但是你想要
hours-minutes-seconds -AM/PM
所以改成
FROM_UNIXTIME(1468561341,'%h:%i:%s %p')
相反。
MySQL中所有时间参数和时间函数用法的参考指南在这里:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html