首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用%m的MySQL返回与%M不同的月份

使用%m的MySQL返回与%M不同的月份
EN

Stack Overflow用户
提问于 2016-03-04 15:21:58
回答 1查看 27关注 0票数 0

CentOS 6.7 MySQL 5.1.73

我有一个归档表,其中有一个名为dateTime的列,它只是每个记录的unix时代。

我试图使用下面的查询提取月份名称和月份号。然而,%M是正确的,但%m不是。

正确的结果应该是March03。然而,%m返回12。

代码语言:javascript
复制
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不同的结果

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-04 15:31:40

选择已由max转换的结果的FROM_UNIXTIME值。

12是最大的数字结果,三月是排序月份名称时的“最大”字母数字结果。

我假设您希望获得最大的结果,并在此之后进行转换:

代码语言:javascript
复制
FROM_UNIXTIME(MAX(dateTime),"%M")

代码语言:javascript
复制
FROM_UNIXTIME(MAX(dateTime),"%m")

是你想要的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35799640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档