CentOS 6.7 MySQL 5.1.73
我有一个归档表,其中有一个名为dateTime的列,它只是每个记录的unix时代。
我试图使用下面的查询提取月份名称和月份号。然而,%M是正确的,但%m不是。
正确的结果应该是March和03。然而,%m返回12。
mysql> SELECT max( dateTime ) FROM archive;
+-----------------+
| max( dateTime ) |
+-----------------+
| 1457104500 |
+-----------------+
1 row in set (0.00 sec)
mysql> SELECT max( FROM_UNIXTIME(dateTime,"%M") ) as 'date' FROM archive;
+-------+
| date |
+-------+
| March |
+-------+
1 row in set (0.02 sec)
mysql> SELECT max( FROM_UNIXTIME(dateTime,"%m") ) as 'date' FROM archive;
+------+
| date |
+------+
| 12 |
+------+
1 row in set (0.02 sec)为什么%m返回12?
编辑:这里有一个有趣的。使用%m %M会产生与%M %m不同的结果
mysql> SELECT max( dateTime ) FROM archive;
+-----------------+
| max( dateTime ) |
+-----------------+
| 1457104500 |
+-----------------+
1 row in set (0.00 sec)
mysql> SELECT max( FROM_UNIXTIME(dateTime,"%M %m") ) as 'date' FROM archive;
+----------+
| date |
+----------+
| March 03 |
+----------+
1 row in set (0.02 sec)
mysql> SELECT max( FROM_UNIXTIME(dateTime,"%m %M") ) as 'date' FROM archive;
+-------------+
| date |
+-------------+
| 12 December |
+-------------+
1 row in set (0.02 sec)发布于 2016-03-04 15:31:40
选择已由max转换的结果的FROM_UNIXTIME值。
12是最大的数字结果,三月是排序月份名称时的“最大”字母数字结果。
我假设您希望获得最大的结果,并在此之后进行转换:
FROM_UNIXTIME(MAX(dateTime),"%M")和
FROM_UNIXTIME(MAX(dateTime),"%m")是你想要的
https://stackoverflow.com/questions/35799640
复制相似问题