在 Mysql 语句中使用 concat 的问题

Wonny 2009-12-18 10:46:41
VB前端,mysql 数据库。
select concat( month(frommonth),'月→',Cast(month(tomonth) AS CHAR),'月') as 征费时段 from mData

select concat( month(frommonth),'月→',month(tomonth) ,'月') as 征费时段 from mData
frommonth 和 tomonth 都是 DATE 字段。
结果 12月→1(第二个实际是 12月)
12月→6
请问如何解决这个问题?
谢谢。
...全文
44 点赞 收藏 4
写回复
4 条回复
YHL27 2009年12月22日
study!
回复 点赞
ACMAIN_CHM 2009年12月19日
知道你的问题估计是什么了,你根本没有设置字符集! 在你的程序中先执行一下 "set names 'gkb'"

mysql> select concat( month(current_date()),'月→',Cast(month(current_date()) AS
CHAR),'月');
+-------------------------------------------------------------------------------
-+
| concat( month(current_date()),'月→',Cast(month(current_date()) AS CHAR),'月')
|
+-------------------------------------------------------------------------------
-+
| 12月→12月
|
+-------------------------------------------------------------------------------
-+
1 row in set (0.00 sec)

mysql> select concat( month(current_date()),'月→',month(current_date()) ,'月');

+-------------------------------------------------------------------+
| concat( month(current_date()),'月→',month(current_date()) ,'月') |
+-------------------------------------------------------------------+
| 12月→12月 |
+-------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
回复 点赞
平凡的思想者 2009年12月19日
正解。

[Quote=引用 1 楼 acmain_chm 的回复:]
mysql 中根本不需要用cast .

select concat( month(frommonth),'月→',month(tomonth) ,'月') as 征费时段 from mData

应该就可以了。

mysql> select concat( month(current_date()),'YY',month(current_date()) ,'YY');
+-----------------------------------------------------------------+
| concat( month(current_date()),'YY',month(current_date()) ,'YY') |
+-----------------------------------------------------------------+
| 12YY12YY                                                        |
+-----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
[/Quote]
回复 点赞
ACMAIN_CHM 2009年12月18日
mysql 中根本不需要用cast .

select concat( month(frommonth),'月→',month(tomonth) ,'月') as 征费时段 from mData

应该就可以了。

mysql> select concat( month(current_date()),'YY',month(current_date()) ,'YY');
+-----------------------------------------------------------------+
| concat( month(current_date()),'YY',month(current_date()) ,'YY') |
+-----------------------------------------------------------------+
| 12YY12YY |
+-----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
回复 点赞
发动态
发帖子
MySQL
创建于2007-09-28

2.4w+

社区成员

5.5w+

社区内容

MySQL相关内容讨论专区
社区公告
暂无公告